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

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

Как дождаться соединения асинхронного сокета? [D6, Win2k]


alexEagle ©   (2003-12-25 16:05:00) 

FSocket это TClientSocket

FSocket.Host := ...;
FSocket.Port := ...;
FSocket.Active := true;

И вот здесь мне узнать соединился ли я с сервером не используя OnConnect.


Polevi   (2003-12-26 19:03:00) [1]

Удалено модератором


имя   (2003-12-26 17:49:00) [2]

Удалено модератором
Примечание: Клоуны нам не нужны ...


Polevi   (2003-12-26 16:21:00) [3]

>SergP © (26.12.03 11:02) [8]
это зависит от режима гнезда


SergP   (2003-12-26 11:02:00) [4]


> Polevi © (26.12.03 09:50) [7]
> >SergP © (25.12.03 19:26) [6]
> не давай плохих советов, плиз


Ладно. Не буду.. Только объясните мне плиз зачем проверять соединился ли сокет сразу же после:
FSocket.Active := true;

Может я что-то не понимаю, но имхо ответ всегда будет однозначный - "не соединился"...


Polevi   (2003-12-26 09:50:00) [5]

>SergP © (25.12.03 19:26) [6]
не давай плохих советов, плиз


SergP   (2003-12-25 19:26:00) [6]


> FSocket.Active := true;
>
> И вот здесь мне узнать соединился ли я с сервером не используя
> OnConnect.


Ну и как это ты себе представляешь? Ведь после того как ты делаешь FSocket.Active := true; сокет соединяется не сразу а ему нужно некоторое время...
Разве что можно поставить цикл для ожидания конекта... В таком случае используй какую нить переменную (флаг) которая будет устанавливаться в OnConnect, а цикл будет постоянно ее (переменную) проверять....


Digitman   (2003-12-25 16:38:00) [7]


> Соединение мне нужно установить синхронно


что за блажь ?


Polevi   (2003-12-25 16:31:00) [8]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1072263854&n=4
режим работы гнезда можно менять в любой момент, см ioctlsocket


alexEagle   (2003-12-25 16:27:00) [9]

Кстати, может у кого то есть примеры как на делфи работать исключительно АПИ-шными функциями при работе с сокетами, а то у меня получается некоторая проблема:
1. Соединение мне нужно установить синхронно.
2. Получать данные асинхронно кроме случая когда мне нужно получить ответ на посланную мне команду.

Может кто посоветует?


alexEagle   (2003-12-25 16:24:00) [10]

Нет, события вообще не подойдут, хотелось бы это узнать сразу после FSocket.Active := true;
Я пробовал делать так:
nRes := select(0, nil, @FDSet, nil, @TimeVal);
if nRes = 0 then begin
FSocket.Active := false;
FLastError := "


Polevi   (2003-12-25 16:09:00) [11]

OnWrite подойдет ?


Наверх

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