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

Вниз

Определить номер клиента.   Найти похожие ветки 

 
LiNkS   (2002-04-24 14:48) [0]

Как это сделать в сокетах? Т.е. мне нужно отправить ответ сокету приславшему на сервер сообщение - в команде Server.Socket.Connections[Z].sendtext нужно ведь Z вставлять - как его определить?


 
LiNkS   (2002-04-24 15:05) [1]

И как вобще слать не по Z, а по IP?


 
Donal_Graeme   (2002-04-24 15:15) [2]

если ты собираешься отправлять ответ сразу после получения в событии OnClientRead - то там не надо ничего определять, есть параметр события Socket - это то соединение, с которого пришли данные.. так что Socket.SendText и все дела.


 
Song   (2002-04-24 15:19) [3]

а по IP шлют через TClientSocket


 
cyborg   (2002-04-25 00:04) [4]

Дело в том, что эта самая Z может поменяться, например подключено 3 сокета, соответственно Z1=0 Z2=1 Z3=2, если Z1 отключится, то Z2=0 Z3=1 , поэтому посылку таким способом лучше не использовать. Этот способ только годится, если вы хотите отправить всем подключённым одинаковые данные, а сделать это можно вот так:
For I:=0 to Form1.ServerSocket.Socket.ActiveConnections-1 do
Begin
Form1.ServerSocket.Socket.Connections[I].SendBuf(Data,DataSize);
End;

Извините, если что не так, я ещё только начинающий.


 
Donal_Graeme   (2002-04-25 10:43) [5]

если кто-то отключится, мы получаем событие OnClientDisconnect и можем сделать соответствующие коррективы. а отправлять не через Connections[I] снаружи обработчика события просто не выйдет.

в принципе, если надо иметь возможность отправлять данные определённому клиенту и не из событий, то необходимо постоянно держать в памяти список подключений.


 
Jeck   (2002-04-26 21:11) [6]

У каждого приконнектившегося есть уникальный ID Handle(Socket->Handle) запоминай его. И по нему потом ищи Connection[i].

что-то в этом роде

for(int i=0;i<ServerSocket->Socket->ActiveConnections;i++)
{
if(ServerSocket->Socket->Handle==myHandle)
{
ServerSocket->Socket->Connections[i]->SendStream(myStream);
break;
}
}



 
Jeck   (2002-04-26 21:14) [7]

вот тут посмотри. Там подобное организовано.
http://src.fitkursk.ru/detail.asp?id=819


 
Maxistar   (2002-04-29 11:40) [8]

Я использую Form1.ServerSocket.Socket.Connections[I].SocketHandle


 
Ghost.   (2002-04-29 13:11) [9]

Тут еще вопрос можно решить поразному в зависимости от того, какая вообще общая цель..тоесть к чему привязвать к SocketHandle или еще чему другому



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

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

Наверх





Память: 0.46 MB
Время: 0.006 c
6-23708
VS2001
2002-04-18 18:03
2002.07.08
Помогите ПЛИЗ !!! Проблема с удалением файла на ФТП сервере


14-23763
Abajun
2002-06-06 11:06
2002.07.08
Потеря данных на винте


3-23503
Alex-A
2002-06-14 10:38
2002.07.08
Генерация ошибки в MSSQL2000 и перехват ее в Delphi


3-23471
Alex3000
2002-06-13 14:42
2002.07.08
Ошибка закрытия таблицы


3-23462
Keizer
2002-06-14 16:04
2002.07.08
Реализация динамических свойств





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский