![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблемы с TServerSocket [D5, Win2k]
BoxTer © (2004-09-10 08:23:00)Доброе время суток. У меня возникла такая ситуация. Прога, рассылающая по таймеру куче клиентов некую строку кодом:
try
for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
ServerSocket1.Socket.Connections[i].SendText(st);
except
on E: Exception do Begin
Memo1.Lines.Add(DateTimeToStr(now)+' '+InttoStr(E.HelpContext)+', '+E.Message);
exit;
end;
end;
в обработчике ошибок ServerSocket1ClientError
Memo1.Lines.Add(DateTimeToStr(now)+' - Ошибка '+Inttostr(ErrorCode));
if ErrorCode=10054 then Begin
Socket.Disconnect(0);
ErrorCode:=0;
end;
уnd;
вываливает ошибку 10054. В MSDN глянул - там все понятно, неудачно отключается клиент. Все клиентские проги обновить просто не смогу - их множество. Даже не смотря на обнуление ошибки, сервер через некоторое время останавливается.
Причем, E.Message выдает 'Вышел за пределы границ(-1)'...
Как мне справиться с этим на сервере?
Verg (2004-09-10 10:28:00) [21]Socket.Disconnect( 0);
Что за ноль?
Socket.Close;
Digitman (2004-09-10 09:27:00) [22]а E.ClassName что говорит ?
BoxTer (2004-09-10 09:01:00) [23]E.Message выдает 'Вышел за пределы границ(-1)' после каждой отправки на клиентов... т.е. на отправке except вываливается каждый раз после негоего неудачного отключения юзера...
BoxTer (2004-09-10 08:24:00) [24]и убирание строки из обработчика ошибок Socket.Disconnect(0); на работу никак не влияет...