Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.08;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
4-23851
chukcha
2002-05-07 17:39
2002.07.08
Не могу подключить библиотеку.


6-23710
SB.John
2002-04-30 08:29
2002.07.08
Как узнать IP-адрес машины на которой работает программа?


6-23718
tovSuhov
2002-04-27 09:01
2002.07.08
OCX и иже с ним...


1-23649
Looser
2002-06-26 09:34
2002.07.08
Компилятор выдает ошибку Access violation... Need Help!


1-23538
Maxal
2002-06-26 16:41
2002.07.08
Ярлык