![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как дождаться соединения асинхронного сокета? [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 подойдет ?