Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python套接字编程(TCP与UDP)_Python_Sockets_Tcp_Udp_Twisted - Fatal编程技术网

Python套接字编程(TCP与UDP)

Python套接字编程(TCP与UDP),python,sockets,tcp,udp,twisted,Python,Sockets,Tcp,Udp,Twisted,我计划设计一个从多个客户机接收数据的服务器,服务器不需要向客户机发送任何东西,尽管STATUS_OK仍然很酷,但不是必需的 我知道Python套接字模块、twisted框架的基础知识,但我的问题是,我应该使用UDP还是TCP?需要保持连接的客户端 我希望你们能理解我的问题,谢谢你们在这里的帮助,你们能承受得起邮件丢失吗?如果是,请使用UDP。否则,请使用TCP。这就是它们的设计目的。一个客户端连接到服务器需要多长时间?您计划处理多少并发连接?如果很多客户端都会出现非常短的数据突发,那么您应该使用

我计划设计一个从多个客户机接收数据的服务器,服务器不需要向客户机发送任何东西,尽管STATUS_OK仍然很酷,但不是必需的

我知道Python套接字模块、twisted框架的基础知识,但我的问题是,我应该使用UDP还是TCP?需要保持连接的客户端


我希望你们能理解我的问题,谢谢你们在这里的帮助,你们能承受得起邮件丢失吗?如果是,请使用UDP。否则,请使用TCP。这就是它们的设计目的。

一个客户端连接到服务器需要多长时间?您计划处理多少并发连接?如果很多客户端都会出现非常短的数据突发,那么您应该使用UDP。但是,TCP很可能在一开始就很好。

您应该始终使用TCP,直到您发现可以通过UDP缓解的性能问题。TCP在出现故障时更容易理解。

我会在您的情况下使用TCP,但很难说您的具体需求是什么。TCP在大多数情况下是更好的协议,因为它更可靠。数据在TCP中很少丢失,但这确实会使其速度减慢一点。由于您没有将任何内容发送回客户端,因此TCP是一种流协议这一事实应该不会太重要


所以我只想使用TCP。

使用TCP,我必须在收到消息后手动关闭客户端连接?呃。。。许多无法承受“丢失”消息的系统使用UDP。NFS(在v3之前)会立即浮现在脑海中,DNS和DHCP也是如此。根据您的需要,将重传/排序逻辑移动到应用程序中是有意义的。如果您没有正确关闭连接,您很快就会发现您的“无限连接”根本不是无限的。更好的说法是“您有没有测试丢失消息时会发生什么情况?”?许多新手认为他们可以承受在应用程序级别丢失消息的代价,但没有意识到他们的底层协议在某种程度上是有状态的,丢失的消息会导致错误。“无限量”-“这是一个多么模糊的要求…继续梦想你可以用一台服务器处理“无限量”。@RestRisiko显然他的意思是“无限量”,或者“不确定”“不是无限的。这更多的是一个关于基本网络概念的问题,比如缓冲。实际上现在我不确定。你问的是无限数量的客户,还是来自客户的无限数量的数据?@rest:你的评论对OP没有什么帮助。@RestRisiko要么要求澄清,要么给出答案。指责OP的“模糊需求”是在浪费文字。客户端只需发送一次数据并断开连接,目前,我无法预测并发客户端的数量