Вверх ↑
Этот топик читают: Гость
Ответов: 1161
Рейтинг: 160
#1: 2008-08-23 19:54:49 ЛС | профиль | цитата
Доброго времени суток!
У меня возник вопрос при работе с компонентом TCPServer. При создании сервера у меня возникла такая проблема: TCPServer мог подключать только одного клиента, а других игнорировал. Так как можно сделать так, чтобы TCPServer мог подключать сразу несколько активных клиентов, а не игнорировал их?
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#2: 2008-08-23 20:20:43 ЛС | профиль | цитата
LainX писал(а):
При создании сервера у меня возникла такая проблема: TCPServer мог подключать только одного клиента, а других игнорировал

И как это обнаруживалось

В таких случаях, что бы кто-то конкрено помог, необходимо составлять элементарные схемки, где можно было бы глянуть, как составлена схема и нет ли в ней ошибок

------------ Дoбавленo:


Я не знаю, как сделан твой сервер, но вот такая схема прекрасно работает



Add(MainForm,2953706,392,231)
{
Width=527
Height=282
Position=1
link(onCreate,4542206:doOpen,[])
}
Add(Edit,8072895,182,147)
{
Left=305
Top=10
Width=105
Text="127.0.0.1"
}
Add(Button,16216635,154,280)
{
Left=10
Top=10
TabOrder=-1
Caption="Send1"
link(onClick,6871667:doSend,[(202,286)(202,230)])
}
Add(Edit,1900078,266,147)
{
Left=415
Top=10
Width=70
Text="3002"
DataType=2
}
Add(Edit,12447358,224,147)
{
Left=70
Top=10
Width=105
Text="Привет!"
}
Add(Edit,1636085,224,329)
{
Left=70
Top=35
Width=105
Text="Здорово!"
}
Add(Edit,14508988,266,329)
{
Left=415
Top=35
Width=70
Text="3002"
}
Add(Button,9019363,154,462)
{
Left=10
Top=35
TabOrder=-1
Caption="Send2"
link(onClick,4461695:doSend,[(202,468)(202,405)])
}
Add(Edit,13134328,182,329)
{
Left=305
Top=35
Width=105
Text="192.168.1.53"
}
Add(Button,2735880,154,210)
{
Left=185
Top=10
TabOrder=-1
Caption="Connect1"
link(onClick,6871667:doOpen,[])
}
Add(Button,13755786,154,385)
{
Left=185
Top=35
TabOrder=-1
Caption="Connect2"
link(onClick,4461695:doOpen,[])
}
Add(ListBox,1107994,532,315)
{
Left=20
Top=75
Width=195
Height=155
}
Add(TCP_Server,4542206,441,245)
{
Port=3002
link(onRead,14828795:doAdd,[])
link(onConnect,6728166:doWork1,[(501,258)])
link(onDisconnect,6728166:doWork2,[])
}
Add(ArrayEnum,6338546,448,329)
{
link(onItem,1107994:doAdd,[(506,335)(506,321)])
link(Array,4542206:IP,[])
}
Add(Hub,16042064,392,322)
{
link(onEvent1,1107994:doClear,[])
link(onEvent2,6338546:doEnum,[])
}
Add(ListBox,14828795,532,245)
{
Left=220
Top=75
Width=280
Height=155
}
Add(TCP_Client,6871667,217,210)
{
link(onConnect,7294018:doOn,[(257,223)(257,230)])
link(onDisconnect,7294018:doOff,[(257,230)(257,223)])
link(IP,8072895:Text,[(223,194)(188,194)])
link(Data,12447358:Text,[])
link(Port,1900078:Text,[(237,194)(272,194)])
}
Add(TCP_Client,4461695,217,385)
{
link(onConnect,7354877:doOn,[(257,398)(257,405)])
link(onDisconnect,7354877:doOff,[(257,405)(257,398)])
link(IP,13134328:Text,[(223,373)(188,373)])
link(Data,1636085:Text,[])
link(Port,14508988:Text,[(237,373)(272,373)])
}
Add(Button,14979136,154,245)
{
Left=245
Top=10
TabOrder=-1
Caption="DisCon1"
link(onClick,6871667:doClose,[(202,251)(202,223)])
}
Add(Button,576154,154,420)
{
Left=245
Top=35
TabOrder=-1
Caption="DisCon2"
link(onClick,4461695:doClose,[(202,426)(202,398)])
}
Add(LED,7294018,266,210)
{
Left=490
Top=10
Width=16
Height=16
Shape=1
ColorOn=65280
ColorOff=32768
ColorBlick=65280
}
Add(LED,7354877,266,385)
{
Left=490
Top=35
Width=16
Height=16
Shape=1
ColorOn=65280
ColorOff=32768
ColorBlick=65280
}
Add(HubEx,6728166,497,252)
{
Angle=1
link(onEvent,16042064:doEvent1,[(501,299)(380,299)(380,328)])
}
Add(InfoTip,14606794,133,91)
{
Info=#0:|7:Clients|
Font=[MS Sans Serif,10,1,0,1]
Frame=3
Width=197
Height=431
}
Add(InfoTip,4169431,364,175)
{
Info=#0:|6:Server|
Font=[MS Sans Serif,10,1,0,1]
Frame=3
Width=225
Height=242
}

карма: 22

1
Голосовали:Konst
Ответов: 1161
Рейтинг: 160
#3: 2008-08-23 22:54:28 ЛС | профиль | цитата
Я проверял с другом. Вот ссылка - http://depositfiles.com/files/7436084
Допустим я запускаю сервер, затем друг запускает клиента. У него все сообщения отображаются. Затем я запускаю клиента - ничего не выходит.
Если я запускаю клиента раньше него, то у меня все отображается, а у него - нет.

Та схема, которую ты выложил, действительно нормально работает. Но мне нужно не совсем то.
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#4: 2008-08-24 00:02:10 ЛС | профиль | цитата
LainX писал(а):
Но мне нужно не совсем то

Не, ну млин, странные люди -- а что "то" должно быть
карма: 22

0
Ответов: 1161
Рейтинг: 160
#5: 2008-08-24 09:29:32 ЛС | профиль | цитата
клиенты могут передавать сообщения, а только одному из них приходит сообщения от сервера
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#6: 2008-08-24 10:45:49 ЛС | профиль | цитата
LainX писал(а):
а только одному из них приходит сообщения

Сейчас приходят, или должны приходить только одному
карма: 22

0
Ответов: 1161
Рейтинг: 160
#7: 2008-08-24 11:47:20 ЛС | профиль | цитата
Приходят только к одному, а должны(надеюсь) ко всем
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#8: 2008-08-24 13:05:24 ЛС | профиль | цитата
А, вот оно в чем дело -- не осуществляется рассылка всем клиентам, а только первому в списке, но тут авторов надо спрашивать -- почему так.
карма: 22

0
Ответов: 1161
Рейтинг: 160
#9: 2008-08-24 13:29:21 ЛС | профиль | цитата
Ну я и спрашиваю
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#10: 2008-08-24 13:40:56 ЛС | профиль | цитата
LainX писал(а):
Ну я и спрашиваю

Ты уж извини, что пришлось подробности из тебя выдавливать, но чем подробнее будет описана задача, тем быстрее на нее найдется ответ
карма: 22

0
Ответов: 1161
Рейтинг: 160
#11: 2008-08-24 14:03:05 ЛС | профиль | цитата
Ну а что подробнее
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#12: 2008-08-25 11:09:40 ЛС | профиль | цитата
LainX писал(а):
Ну а что подробнее

Да ты уже написал, что нет рассылки всем клиентам. Подждем, может tsdima что скажет, он у нас спец по TCP
------------ Дoбавленo:

Мне, что-то, эта тема покоя не давала, и я решил разделить схему и проверить ее на локалке. Так вот, брехня все это про невозможность сервером отправки сообщений всем клиентам. Схема клиента, представленная в архиве, прекрасно отправляла и принимала от сервера все сообщения, будучи запущенной на нескольких компах, и сервер прекрасно отправлял сообщения всем клиентам
карма: 22

1
файлы: 1tcp.zip [1.4KB] [169]
Голосовали:Konst
Ответов: 1161
Рейтинг: 160
#13: 2008-08-25 14:37:59 ЛС | профиль | цитата
А я разобрался.
В TCP Server надо было данные вводить в память, а потом уже отправлять. nesco, извини за беспокойство
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#14: 2008-08-25 14:42:39 ЛС | профиль | цитата
LainX писал(а):
извини за беспокойство

Да ладно, главное до истины докопались -- компонент-то рабочий
карма: 22

1
Голосовали:Konst
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)