![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема при коннекте клиента с сервером [Win95/98, WinME, NT4, Win2k, WinXP]
Blast © (2002-08-07 00:22:00)Если при запуске клиента он начинает стучаться до сервера и не находит его (сирвак выключен, что вполне возмножно), возникает ошибка. Эту ошибку аккуратно (try...exept) закрываем и стучимся снова. Это продолжается ~15 минут. Через 15 минут возникает ошибка 10055. Которая уже не перебивается try-ем. После этого попытки достучаться до сервера не продолжаются. Если в течение 15 минут сирвак проснулся, все ОК. Нужна помощь...
Blast :)
BLAST (2002-08-18 22:59:00) [1]YouNick ОГРОМНОЕ СПА-СИ-БА за то, что прояснил ситуацию ;) Malder по-видимому не сталкивался именно с этой ошибкой и поэтому говорит ErrorCode := 0. Это как и ВСЕ другие способы не помогут. А вот закрыть сокет - ЭТО ИМЕННО ТО, ЧТО И ТРЕБОВАЛОСЬ. (Я и сам в MSDNе находил объяснение этой ошибки, но ответа до сих пор найти не получалось. Перепробовал ВСЕ!!! Вплоть до API-клиента...).
YouNick - ЕЩЕ РАЗ АГ-РОМ-НОЕ СПА-СИ-БА !!!!!!!
Может и я чем смогу ;)
Blast :)
YouNick (2002-08-08 10:50:00) [2]2Malder: Это не спасет ;)
2Other
И речь идет только об ошибке 10055 - WSAENOBUFS - Это значит, что винды не могут создать новый сокет.
Так вот, чтобы не доходило до этого, нужно удалять именно апишный сокет, при ошибке 10061:
CloseSocket(Socket.SocketHandle)
Это касается только Борлондовых компонент, про другие не знаю ...
Malder (2002-08-07 23:58:00) [3]Да не. НЕ фига. Надо писать ErrorCode:=0 - тогда никаки окошек всплывать не будет. И никаких try...except не надо...
VID (2002-08-07 21:06:00) [4]TO YouNick: нифига себе... так что же.. получается при одшибке 10061 надо в OnError Socket.Destroy писать, или Socket.Close, хватит ?
YouNick (2002-08-07 11:49:00) [5]Смотря на чем написан твой клиент ... Имеется виду компоненты какие или API. В борландовских компонентах TClientSocket есть ошибка ;) Они не убивают созданный сокет, если не удалось установить связь с сервером.