私はソケットを使ってPythonでクライアント/サーバーソフトウェアをプログラミングしています。ソケットPython接続
は、私は、特にTCP/IPおよびソケットのモデルのために、疑問を持っている:私は私のサーバー側のコードのこの例を使用しています
(Pythonで、サーバ側プログラム):
import socket
# Create a TCP/IP socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Prevent from "address already in use"
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Bind the socket to port
server_address = ("localhost", 5000)
server.bind(server_address)
# Listen for connections
server.listen(5)
# Wait for on incomming connection
read = connection.recv(1024)
print "Received: ",read
すべて、結構ですが、私はいくつかの概念の質問があります:
1)ENABためのベストプラクティスですどのようにこの通信は? CLIENTとSERVERプログラム間でTCP/IPのハートビートトラフィックをセットアップする必要がありますか?私は、私が戻ってきて、接続確立後に別のメッセージ(接続が確立されてから数分後に)を送信すると、サーバでトラフィック(アイドル)のないクライアントプログラムを残すことも見ました。それは正常な行動ですか?
2) TCP/IPスタックまたは「ソケットモジュール」でさえも、何らかの種類のTIMEOUT機能があります。私は誰が私の "タイムアウト"接続をPythonでソケットモジュールを使って失ったのですか?
すべてのためのTks!
Tks Thomas、TCP/IPモデルはハートビートトラフィックを生成しません。エンドポイントが接続されている間、接続は開いたままです。 – StarkBR
関連する質問へのリンクで更新されました。 – Thomas