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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2010, 22:05   #11
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

Alemas, призыв учить матчасть - это не всегда завуалированное оскорбление, иногда это еще и дельный совет

В процедуре обработки нажатия на кнопку Sender в общем случае (если вызов инициирован не руками, а нажатием на эту кнопку) - это кнопка, на которую нажали (а иногда один обработчик работает и с несколькими кнопками), ее нельзя привести к клиентскому сокету. Читайте про события и их обработку в Delphi. Не игнорируйте и написанное про сообщения - пригодится.

У меня в примере ClientDataAvailable навешивается на серверный сокет и срабатывает при наличии данных от клиенского сокета, поэтому и Client:=TWSocketClient(Sender); Что Вы хотели сделать - я так и не понял.

Еще - никогда не тестируйте приложения такого рода (интерактивного обмена) с помощью ShowMessage - не стоит модально останавливать обмен, учитесь детально логировать (хотя бы в Memo на форме для начала) необходимые для этого процессы.

Теперь о принципиальном. В Вашей задаче неизбежен некий протокол. То есть в самом простом виде после соединения каждый клиент должен отправлять на сервер свою идентификационную информацию, а сервер в некоей структуре (типа список TList ссылок на записи) соотносить клиентский сокет и эту информацию. А если от клиента приходит сообщение другому клиенту (и оно должно содержать ID-инфу этого другого), то сервер должен найти в своем списке сокет по ID-инфе и через этот сокет отправить сообщение (а при невозможности - ответить отправителю).

P.S. А предыдущие посты лучше все же объединить.
Антон Ю.Б. вне форума Ответить с цитированием
Старый 19.02.2010, 22:07   #12
Alemas
Пользователь
 
Регистрация: 15.02.2010
Сообщений: 18
По умолчанию

Вы всё правильно поняли, а я в свою очередь понял что я полный ламер...да ещё и невнимательный ламер...только сейчас перечитал всё мною наколяконное и понял некоторые ошибки... И что всё равно не понимаю как отправлять текстовые данные с сервера на клиент и наоборот...

Последний раз редактировалось Alemas; 19.02.2010 в 22:45.
Alemas вне форума Ответить с цитированием
Ответ


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