|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
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 |
Пользователь
Регистрация: 15.02.2010
Сообщений: 18
|
Вы всё правильно поняли, а я в свою очередь понял что я полный ламер...да ещё и невнимательный ламер...только сейчас перечитал всё мною наколяконное и понял некоторые ошибки... И что всё равно не понимаю как отправлять текстовые данные с сервера на клиент и наоборот...
Последний раз редактировалось Alemas; 19.02.2010 в 22:45. |