Добрый день!
Появилась такая проблема. Обмен работает какое-то время, но потом перестает!
Посмотрел, все крутится в цикле: SERVER_STATE_CREATE - SERVER_STATE_BIND - SERVER_STATE_CLOSE
Вот код:
Код:CASE eState OF SERVER_STATE_CREATE: hServerSocket := SysSockCreate( SOCKET_AF_INET, SOCKET_STREAM, SOCKET_IPPROTO_TCP ); IF hServerSocket <> SOCKET_INVALID THEN SysSockSetOption(hServerSocket, SOCKET_SOL, c_diSoNbio, ADR(diOption), SIZEOF(diOption) ); eState := SERVER_STATE_BIND; ELSE eState := SERVER_STATE_CLOSE; END_IF SERVER_STATE_BIND: stServerSettings.sin_family := SOCKET_AF_INET; stServerSettings.sin_addr := SysSockHtonl(SOCKET_INADDR_ANY); stServerSettings.sin_port := SysSockHtons(wPort); xBinded := SysSockBind(hServerSocket, ADR(stServerSettings), SIZEOF(stServerSettings) ); IF xBinded THEN eState := SERVER_STATE_LISTEN; ELSE eState := SERVER_STATE_CLOSE; END_IF SERVER_STATE_LISTEN: xListened := SysSockListen(hServerSocket, INT_TO_DINT(c_iMaxConnections) ); IF xListened THEN eState := SERVER_STATE_ACCEPT; ELSE eState := SERVER_STATE_CLOSE; END_IF SERVER_STATE_CLOSE: SysSockShutdown(hServerSocket, c_diHow); SysSockClose(hServerSocket); hServerSocket := SOCKET_INVALID; eState := SERVER_STATE_CREATE;




Ответить с цитированием