2016-11-15 6 views
0

私のソケットにキープアライブフラグを設定しようとしています。私はPython 3.5.2を使用しています。ここでは、コードです:Python 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で動作し、エラーは発生しません。

ハンヌ