Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Вниз

Connection: Keep-Alive и TClientSocket 


eblade   (2001-11-23 11:49) [0]

Как можно не закрыть КлиентСокет после отправки первого запроса? Просто при первом я провожу аутентификацию, а на последующих должен идти сам процес обмена. А сокет закрывается...



Digitman   (2001-11-23 12:13) [1]

>eblade

"сокет закрывается..." - что, сам по себе ? ни с того ни с сего ? без сообщений о причинах дисконнекта ? так не бывает)

приводи код сервера и клиента.



eblade   (2001-11-23 17:54) [2]

По крайней мере вызывается OnDisconnect.



Digitman   (2001-11-24 13:56) [3]

>eblade
Если OnError при этом не возникает, это означает только одно : соединение разорвано вполне корректно, и инициатором разрыва является сервер. Сервер-то у тебя, наверно, ThreadBlocking ? И TServerClientThread.Execute, наверно, тоже не переопределял ?

Вот, посмотри, что делается в транспортном потоке сервера по-умолчанию:

procedure TServerClientThread.ClientExecute;
var
FDSet: TFDSet;
TimeVal: TTimeVal;
begin
while not Terminated and ClientSocket.Connected do
begin
FD_ZERO(FDSet);
FD_SET(ClientSocket.SocketHandle, FDSet);
TimeVal.tv_sec := 0;
TimeVal.tv_usec := 500;
if (select(0, @FDSet, nil, nil, @TimeVal) > 0) and not Terminated then
if ClientSocket.ReceiveBuf(FDSet, -1) = 0 then Break //!!!!!!!
else Synchronize(DoRead);
if (select(0, nil, @FDSet, nil, @TimeVal) > 0) and not Terminated then
Synchronize(DoWrite);
end;
end;


надеюсь, BREAK даст тебе ответ на вопрос.



eblade   (2001-11-24 19:50) [4]

Ух. Неплохо, буду знать на будущее.

В принципе, сервер не должен быть ThreadBlocking, поскольку им у меня является ПО веб-сайта. Надо будет проверить.




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.019 c
3-42687           Vasilii               2002-01-17 11:54  2002.02.14  
---|Ветка была без названия|---


3-42691           Макс                  2002-01-22 12:21  2002.02.14  
Как программно присвоить полю Integer значение NULL


14-42853          zero                  2001-12-26 11:59  2002.02.14  
Сегодня день рождения Чарльза Бэббиджа - изобретателя компьютера


1-42736           Игорь                 2002-01-30 03:09  2002.02.14  
Вопрос из серии Hellow Word :)


3-42678           MVova                 2002-01-21 12:04  2002.02.14  
Изменение записи в тригере