Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сокеты [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо