powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ? Winsock.state продолжает возвращать 7 при отключения сервера
2 сообщений из 2, страница 1 из 1
? Winsock.state продолжает возвращать 7 при отключения сервера
    #34515204
Akarak2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на клиенте делаю при создании объекта соединение This.winsock.Object.Connect(Ip,Port)
если сервер в этот момент не в сети, то nState=thisform.spisok.nomer1.Winsock.state
nState<>7
если сервер в сети, то
nState=7
Если после этого сервер выпадает из сети, то проверка nState=thisform.spisok.nomer1.Winsock.state, должна вернуть что-то отличное от 7,
но почемуто продолжает возвращать 7.
Как можно обойти эти грабли?
...
Рейтинг: 0 / 0
? Winsock.state продолжает возвращать 7 при отключения сервера
    #34517658
oleg_km
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно задействовать опцию TCP/IP - Keep Alive. Подробная статья есть на www.rsdn.ru. На фоксе рабочий пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
FUNCTION TCPKeepAlive
LPARAMETERS nSck, nTime, nInterval
	DECLARE LONG WSAIoctl IN ws2_32.dll LONG, LONG, STRING@, ;
		INTEGER, INTEGER, INTEGER, LONG@, INTEGER, INTEGER
	DECLARE LONG WSAGetLastError IN ws2_32.dll
	nSize =  0 
	cStr = long2str( 1 ) + long2str(nTime) + long2str(nInterval)
	nRet = WSAIoctl(nSck, 0x80000000 + 0x18000000 +  4 , @cStr, ;
		 12 ,  0 ,  0 , @nSize,  0 ,  0 )

	IF nRet = - 1 
		nRet = WSAGetLastError()
	ENDIF
	RETURN nRet
ENDFUNC
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ? Winsock.state продолжает возвращать 7 при отключения сервера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]