【发布时间】:2012-04-29 12:13:31
【问题描述】:
我正在使用套接字在 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 中丢失了我们的“超时”连接?
感谢所有人!
【问题讨论】:
标签: python sockets networking tcp