我正在使用套接字在 Python 中编写客户端/服务器软件。
我有一个问题,专门针对 TCP/IP 和 Socket 模型:
我在服务器端使用这个代码示例(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 栈甚至“socket 模块”有任何类型的 TIMEOUT 功能?!?!我可以控制谁使用 socket 模块在 Python 中丢失了我们的“超时”连接?
谢谢大家!