Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];

Вниз

Отправка данных из ServerSocket   Найти похожие ветки 

 
BlackSun   (2002-08-12 12:57) [0]

Делаю подобие чата, и с сервера пытался сделать
serversocket1.socket.SendText("MyText");
но не получилось, тогда поискав информации нашел следующее
ServerSocket1.Socket.Connections[0].SendText("MyText");
но в моем случае это не работало, тогда я попробовал
ServerSocket1.Socket.Connections[1].SendText("MyText");
^^^
и все заработало.
Так вот как узнать, какое соединение по счету считается активным? Ведь не всегда и не везде будет 1...


 
Digitman   (2002-08-12 13:20) [1]

Все соединения, зафиксированные в момент обращения к св-ву Connections[], сервером считаются логически активными.
Логически неактивных соединений, с т.з. сервера, в этом списке нет и быть не может


 
Blacksun   (2002-08-12 16:19) [2]

Но как мне узнать, какой индекс ставить? Не перебирать же их по порядку? Когда использую Connections[0] ничего не получается, а когда Connections[1], то все работает, но это от случая к случаю...


 
Digitman   (2002-08-12 16:38) [3]

А даже если бы и перебирал - каков был бы у тебя критерий выхода из цикла перебора активных соединений ?

Ты вообще кому конкретно сообщение-то шлешь ? Какому клиенту ? Как ты его вообще идентифицируешь на сервере при установлении с ним (клиентом) логического коннекта ?


 
Ghost.   (2002-08-12 17:15) [4]

Ты правильно тебе говорят при подключении клиентов как нибудь идентифицируй и тогда понятно будет кому слать


 
cyborg   (2002-08-12 18:03) [5]

Разошлёт всем клиентам:

For I:=MainForm.ServerSocket1.Socket.ActiveConnections-1 downto 0 do
Begin
MainForm.ServerSocket1.Socket.Connections[I].SendText("MyText");
End;


 
Malder   (2002-08-12 19:12) [6]

BlackSun, ты, видимо, не понимаешь. К ServerSocket могут подключиться много клиентов. Не нужно ставить 100 сервер сокетов для 100 клиентов (тем более, ты не сможешь этого сделать). А Connections это массив, где 0 - первый подключившийся, 1 - второй и т.д.


 
Blacksun   (2002-08-12 19:32) [7]

Я вообще не понимаю, что за клиент подключен под [0], должен быть мой, а мой получается под [1].
А клиента я никак не идентифицирую, просто у сервера открыт порт и клиент сам подключается. Поэтому я и не могу понять под каким индексом в массиве этот клиент. Может тогда подскажете, как определить?
По теории он должен быть [0], а на практике получается [1]. А все подряд перебирать не выход.


 
Blacksun   (2002-08-12 19:41) [8]

А вот такой вопрос... почему при соединении клиента с сервером он показывает что в наличии 2 соединения, а не 1?


 
cyborg   (2002-08-12 21:17) [9]

А это уже тебя нужно спросить, что ты там ещё подключаешь?
Код покажи хотябы, как ты свой сервер включаешь и как клиента к нему подключаешь?


 
kosmach   (2002-08-13 07:43) [10]

Извините, если помешаю, но можно здесь же задать немного другой вопрос. Как, например, в обработчике события onServerSocketClientDisconnect определить какой именно по счету клиент сейчас отключился? Там есть параметр Socket, но у него подходящих свойств я не нашел, может нитуда смотрел, подскажите пожалуйста.
Между прочим, Blacksun , этот самый параметр Socket в событиях ServerSocket, вполне может облегчить твою жизнь.


 
Digitman   (2002-08-13 08:23) [11]

>Blacksun

Факт установления коннекта с очередным клиентом фиксируется событием OnClientConnect(). Второй параметр процедуры обработки события - Socket: TCustomWinSocket - идентифицирует клиента в т.ч. как новый элемент, занесенный в список Connections[].
Отсюда и пляши.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.03 c
3-45165
Dark Hunter
2002-09-20 14:45
2002.10.14
Oracle и...?


7-45596
marat2002
2002-06-28 16:41
2002.10.14
У кого нибудь есть пример драйвера принтера


1-45291
mio
2002-10-04 15:55
2002.10.14
Компонент TDBGridEh


14-45507
diww
2002-09-18 11:06
2002.10.14
подскажите хороший форум по NT


8-45467
TPavel
2002-05-12 17:49
2002.10.14
определение тонального набора





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский