我正在尝试为聊天程序编写服务器。我希望服务器与每个聊天用户建立TCP连接。有没有办法让服务器同时拥有多个tcp连接而无需为每个连接创建套接字?如果是的话,怎么样?
答案 0 :(得分:2)
没有。与UDP套接字不同,TCP套接字工作是面向连接的。无论将哪些数据写入套接字,“神奇地”似乎从另一端的套接字中作为数据流出来。为此,两个套接字都维持一个虚拟连接,一个状态。除其他外,状态定义了两个端点的连接 - 两个套接字的IP和端口号。因此,单个TCP套接字只能与另一端的单个TCP套接字进行通信。
另一方面,UDP套接字基于每个数据包(无连接)运行,允许您使用相同的套接字向/从任何目的地发送接收数据包。但是,UDP不保证可靠性和按顺序交付。
顺便说一下,你的问题与python无关。所有套接字(原始套接字除外)都是操作系统套接字,它们在所有语言中都以相同的方式工作。