Форум: "Сети";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизTServerSocket. Что это за странные хенделы -1 ? Найти похожие ветки
← →
SergP (2003-08-24 15:22) [0]В процессе работы в TClientSocket возникают странные хенделы (-1).К тому же постепенно их становится все больше и больше. Эти соединения уже не используются и должны быть закрытыми, т.е. их вообще не должно быть.
По идее при дисконекте соединение должно исчезнуть, а при возникновении ошибки работает такой обработчик:
procedure TForm1.ServerSocketClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
socket.close;
ErrorCode:=0;
end;
Пока не могу вычислить когда они возникают, но может кто-нить что-нить подскажет отчего некоторые соединения не исчезают а остаются (но с хенделом -1)?
← →
Digitman (2003-08-25 08:47) [1]рискни вместо
socket.close;
использовать
socket.free;
← →
Reindeer Moss Eater (2003-08-25 13:14) [2]Если есть NAT и если при разрыве соединения не посылается fin-пакет, то такое "дропнутое" соединение может висеть 24 часа. (Default value у cisco)
← →
NikB (2003-08-25 13:29) [3]Ia ne ochen v delo, no v etom forume sovetovali plxzovat:
Socket.Disconnect(Socket.SocketHandle); // закроем гнездо
← →
Digitman (2003-08-25 13:29) [4]
> Reindeer Moss Eater
да у него из другой оперы проблема)
TCustomWinSocket.Close не вызывает метод TServerWinSocket.RemoveClient(), ибо последний вызывается лишь в TServerClientWinSocket.Destroy
← →
Digitman (2003-08-25 13:31) [5]
> NikB
внутри метода Socket.Close напрямую вызывается то, что тебе "советовали" ....так что разницы никакой
← →
NikB (2003-08-25 13:39) [6]>Digitman
10x
Nado chitat source :)
← →
Digitman (2003-08-25 13:41) [7]
> NikB
вот именно)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c