Главная страница
    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.005 c
6-23722
slabur
2002-04-26 14:19
2002.07.08
Как проверить URL (работает или отсутствует)?


8-23691
hair_fly
2002-02-28 15:40
2002.07.08
Быстрый вывод Bitmap на экран


1-23604
boger
2002-06-25 11:27
2002.07.08
как записать в файл переменную нестандартную переменную?


14-23773
SPeller
2002-06-06 10:29
2002.07.08
Компилятор Дельфей


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