2016-11-15 1 views
0

내 소켓에 활성 상태 플래그를 설정하려고합니다. 파이썬 3.5.2를 사용하고 있습니다. 여기 코드는 다음과 같습니다파이썬 3.5.2 소켓 연결 유지

ConnectionSocket, address = ServerSocket.accept() 

ConnectionSocket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE,1) 
ConnectionSocket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 1) 
ConnectionSocket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 3) 
ConnectionSocket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 5) 

하지만 오류를 얻고있다 :

Traceback (most recent call last): 
    File "C:/Users/User/Desktop/QuizServer/QuizServer/MultiplexingServer.py", line 135, in <module> 
    ConnectionSocket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE,1) 
AttributeError: type object 'socket' has no attribute 'SOL_SOCKET' 

어떻게이 문제를 해결할 수 있습니까?

답변

0

소켓 라이브러리를 어떻게 가져 오며 어떻게 서버 소켓을 정의합니까? 코드 스 니펫에서 누락되었습니다.

import socket 

ServerSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
ServerSocket.bind((socket.gethostname(), 4224)) 
ServerSocket.listen(0) 
ConnectionSocket, address = ServerSocket.accept() 


ConnectionSocket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE,1) 
ConnectionSocket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 1) 
ConnectionSocket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 3) 
ConnectionSocket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 5) 

이 코드는 Python3.5에서 작동하며 오류가 발생하지 않습니다.

한누