![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сокеты [D5, Win2k]
BJValentine © (2004-04-01 16:20:00)В обработчике события чтения на клиентском сокете пытаюсь открыть другое соединение (использую для этого другой компонент TClientSocket).
TS.Active:=true;
TS.Socket.SendText('???');
Ошибок не выдаёт, но ничего не отправляет. Запустил отладку, выяснилось что и Active=false не смотря на TS.Active:=true; Где тут камень?
BJValentine (2004-04-02 11:59:00) [1]Ok
Digitman (2004-04-02 11:49:00) [2]
> Хочется чтобы сервер и клиент общались по событиям. А что,
> SendBuf будет работать?
Ну раз хочется, то никто и ничто этому не мешает
Конечно будет ! Куда он денется-то)
> нужно про это внимательно почитать, но где?
ну хотя бы для начала в станд.хэлпе к методу TCustomWinSocket.SendBuf()
попробуй вчитаться в каждую фразуописания и понять, о чем идет речь .. а о том , что будет непонятно после внимательногоизучения материала, побеседуем уже в конкретностях, ок ?
BJValentine (2004-04-02 10:44:00) [3]> тем не менее - какой режим вибираешь ?
Неблокирующий режим выбираю. Хочется чтобы сервер и клиент общались по событиям. А что, SendBuf будет работать?
Я так понял, что нужно про это внимательно почитать, но где? Может кто ссылку знает. На этом сайте я читал статьи, но там немного не понятно для начинающего описано. Хотя бы про неблокирующий режим.
Verg (2004-04-02 09:19:00) [4]
> BJValentine © (01.04.04 19:12) [2]
> Точно, в нём. Но я не могу разобраться, как мне поступить
> в этой ситуации: Я принимаю ответ с сервера и в зависимости
> от его ответа хочу ему отправить данные (в этом же обработчике).
> Что мне нужно сделать, чтобы этого добиться?
Ну так и отправляй Socket.SendBuf - в чем проблема?
Вот если бы надо было в этом обработчике отправить данные какому-либо другому серверу, т.е. установить другое соединение, то тогда да, тут немного все сложнее в асинхронном режим (неблокирующем).
Digitman (2004-04-02 08:17:00) [5]ах да ... я упустил из виду, что все это дело происходит в обработчике OnRead, и ты пытаешься установить коннект с другимсервером ..
тем не менее - какой режим вибираешь ?
Digitman (2004-04-02 08:14:00) [6]
> Я принимаю ответ с сервера
где же принимаешь ? из кода видно, что первым делом , сразу за Open, ты пытаешься что-то послатьсерверу !
> не могу разобраться, как мне поступить в этой ситуации
в какой конкретно ? на каком режиме ты остановил свой выбор ?
BJValentine (2004-04-01 19:12:00) [7]Точно, в нём. Но я не могу разобраться, как мне поступить в этой ситуации: Я принимаю ответ с сервера и в зависимости от его ответа хочу ему отправить данные (в этом же обработчике). Что мне нужно сделать, чтобы этого добиться?
Digitman (2004-04-01 16:29:00) [8]
> Где тут камень?
"камень" - в НЕблокирующем рещиме работы того, на что ссылается TS