ソケットを使用して 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)この通信を有効にするためのベスト プラクティスはどのようなものですか?? CLIENT プログラムと SERVER プログラムの間で TCP/IP のハートビート トラフィックをセットアップする必要がありますか?? クライアント プログラムをサーバーとのトラフィックなし (アイドル状態) のままにしておいても、戻ってきて別のメッセージを送信すると (接続が確立してから数分と数分後)、メッセージは引き続き送信されることがわかりました。それは正常な動作ですか?
2) TCP/IP スタックまたは「ソケット モジュール」でさえ、何らかの種類の TIMEOUT 機能を備えています?!?! socket モジュールを使用して Python で失われた「タイムアウト」接続を制御できるのは誰ですか??
ありがとうございます!