Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2009, 23:04   #1
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
Вопрос TServerSocket

Вот, допустим, есть у меня серверная часть... От клиентов к ней приходят пакеты... Как определить, от какого именно Connection пришёл этот пакет, чтобы ответ на него посылать не всем клиентам, а именно тому, от которого этот пакет был принят?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 20.01.2009, 23:16   #2
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

у меня кстати список всех подключенных клиентов обновляется после подключения каждого нового... я вот тут подумал, что не влезая ни в какие глубины этого компонента, можно сделать так:
Код:
procedure TFORM1.srvClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
    for I := 0 to srv.Socket.ActiveConnections - 1 do
    Srv.Socket.Connections[i].SendText(cmd + IntToStr(i+1));
end;
и на основе этого каждый клиент будет знать, какой у него Connection, и общаться с сервером с этим номером...

З.Ы. Но мне кажется, что так нерационально поступать, так что если есть какой либо другой способ, подскажите, пожалуйста
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 21.01.2009, 21:05   #3
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию

А если один клиент отключится???
У каждого соединения есть Handle-типо его личный номер, лучше его отправляй
mar4elo вне форума Ответить с цитированием
Старый 21.01.2009, 21:50   #4
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... ну то,что клиент отключается, тоже само собой подразумевалось обрабатывать.... но мне именно надо, чтобы в событии OnClientRead узнавался номер приславшего канала, и в зависимости от команды либо только ему отправлялось, чтобы сеть не загружать, либо всем... вот как определить этот Handle?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 24.01.2009, 10:10   #5
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

вот надыбал информации немножко по SocketHandle'ам, но хотелось бы теперь узнать - при отключении одного клиента из середины массива Connections[], происходит ли сжатие этого массива?

P.S. извините, модераторы,что второй вопрос в теме задаю, просто из-за такого маленького вопроса не хотелось бы новую тему создавать
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компоненты TServerSocket и TClientSocket Vadim Компоненты Delphi 5 15.03.2010 20:34
Передача функции TServerSocket и TFileStream dns-s Работа с сетью в Delphi 2 26.03.2008 21:15
проблема с TServerSocket и с TClientSocket DOLBY Работа с сетью в Delphi 56 14.01.2008 16:12
Проблема с TClientSocket, TServerSocket PLOT_HD Работа с сетью в Delphi 4 11.08.2007 17:03
Компонент TServerSocket в Delphi 7 dfmb Компоненты Delphi 9 03.08.2007 19:09