草庐IT

tcp - 是否可以在两个软件之间同时建立 TCP 和 UDP 连接

我目前正在使用客户端-服务器模型在Python中开发一款高度响应的游戏。客户端和服务器之间的数据交换速度需要非常快。是否可以同时建立udp和tcp连接?Udp仅在游戏期间使用。Tcp将用于需要更多可靠性的消息,如连接、名称更改、聊天...是不是也是一种很好的思路?或者我应该只使用UDP吗? 最佳答案 是的,这可能是个好主意。使用UDP,单个丢失的数据包不会使整个流停止。另一方面,您需要重试和拥塞控制。我会尝试使用UDP发送消息,如果在短时间内没有确认到达,则在保持打开的TCP连接上重新发送它们。这应该将99%的负载转移到UDP,并使

networking - 处理实时游戏中的网络丢包 - TCP 和 UDP

为我的第一个网络游戏阅读了很多这方面的资料,我了解了TCP与UDP的保证交付与交付时间的核心区别。我也读过截然相反的观点,实时游戏应该使用UDP还是TCP!;)没有人很好地介绍如何处理丢包问题。TCP:阅读一篇使用TCP获得FPS的文章,该文章建议仅使用TCP。使用TCP客户端输入的权威服务器将如何处理丢包和突然的史诗般的滞后峰值?游戏是否只​​是暂停片刻然后从停止的地方继续?TCP数据包丢失是否非常罕见,以至于这并不是什么大问题,TCP上的FPS实际上运行良好?UDP:另一篇文章建议只使用UDP。显然,像“throw手榴弹”这样的一次性UDP事件不够可靠,因为它们有时不会触发。您是否

c - 了解用于接收 UDP 消息和打开 TCP 套接字的选择循环

您好,我正在为一个网络类项目工作,我们在网络中创建节点,通过udp从控制应用程序接收消息,然后创建与其他节点的tcp连接。基本顺序是:1)控制管理器向节点A发送udp消息,告诉它连接到节点B2)节点A接收udp消息并将udp消息转发给节点B3)节点B接收udp消息,随机选择一个端口号,在该端口上打开一个监听的tcp套接字,并使用端口号将udp消息发送回A4)节点A接收到udp消息并在该tcp端口上打开到节点B的连接。基本上,我想循环接收到的udp消息并跳转到我的消息解析函数,同时循环tcp连接。那部分看起来很简单,但我真的不明白如何将监听套接字添加到文件描述符列表中。下面的代码是我放在

java - 单独的 TCP/SSL 连接用于身份验证,而 UDP 用于主要流量?

我目前正在编写一个小型客户端/服务器软件,其中服务器在PC/Mac(Java)上运行,客户端在Android上运行。客户端向服务器发送许多小数据包,低延迟很重要,单个数据包丢失无关紧要,这就是我想为此使用UDP的原因。问题是我需要一些身份验证,因为服务器应该只接受来自已知设备的数据包(第三方不应该能够发送有效数据包,但是它是否可以读取此类数据包并不重要)。所以我在想的是,身份验证可以在单独的TCP(甚至SSL)连接上进行,而主要流量通过UDP进行。仅接受来自与TCP/SSL连接相同IP地址的UDP数据包,并且只要连接处于Activity状态。这是一种(相对)安全的身份验证方法还是有简单

python - TCP Connection Reset by peer 和 Transport End Point 未连接

我们在同一台机器上运行一个TCP服务器客户端架构,客户端在127.0.0.1:30008上连接服务器。我们看到的是,有一段时间TCP连接被服务器重置。我们可以清楚地看到,在tcpdump跟踪中,服务器发送了RST标志。客户端代码是python,服务端代码是C。是什么导致服务器发送这个RSTflat?,此设置用于运行几个月没有任何问题,所以我们很惊讶地看到现在发生了什么。TCP服务器通过另一个UDP端口从其他服务器获取数据,并通过TCP端口30008传输到客户端,客户端在while循环中监听服务器端口。想知道,这种连接RST问题不会发生在UDP连接上吗?有时我们可以看到服务器正在关闭套接

将音频发送到 UDP 服务器的 Java 客户端

我正在寻找一些关于如何实现能够将音频发送到服务器的Java客户端的链接/源代码/教程(如下)。它将能够发送一个音频文件,然后由服务器接收并通过计算机扬声器播放。我还想问一下,对于这种情况,使用UDP或TCP服务器会更好吗?因为我要开发一个Android应用程序,它可以录制声音,然后将其发送到服务器,以便通过计算机扬声器实时播放。packagecom.datagram;importjava.io.ByteArrayInputStream;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjavax.soun

sockets - 使用 Boost.Asio 可以同时运行哪些套接字发送/接收操作

我知道可以在TCP和UDP套接字上同时运行async_send和async_receive操作。但是在这些情况下预期的行为是什么:在UDP套接字上同时调用两个async_send操作。在UDP套接字上同时调用两个async_receive操作。在TCP套接字上同时调用两个async_send操作。在TCP套接字上同时调用两个async_receive操作。我主要对第一种情况感兴趣;因为UDP不一定保留发送数据包的顺序,所以我不太关心它们的发送顺序是否与调用async_send的顺序不同。 最佳答案 如果没有BoostASIO,同样的

python - 一次同时处理 TCP 和 UDP 的扭曲协议(protocol)

考虑到我的逻辑,我想做的事情与我选择的传输方式无关——我希望UDP和TCP工作。通常,如果我使用的是TCP或SSL——这有点微不足道。但是,对于UDP(无工厂)和TCP(使用工厂),它变得有点棘手?fromtwisted.internet.protocolimportFactory,ServerFactory,Protocol,DatagramProtocolfromtwisted.internetimportreactorclassSpecialServerProtocol(DatagramProtocol,Protocol):defdatagramReceived(self,dat

python-2.7 - 带有 UDP 的 Python asyncore

我可以在asyncore中编写UDP客户端/服务器应用程序吗?我已经使用TCP编写了一个。我的愿望是将它与对UDP的支持相集成。我的问题以前没有被以下人问过/回答过:PythonasyncoreUDPserver 最佳答案 经过长时间的搜索,答案是否。Asyncore假定底层套接字是面向连接的,即TCP。 关于python-2.7-带有UDP的Pythonasyncore,我们在StackOverflow上找到一个类似的问题: https://stackove

sockets - TCP拥塞会影响其他端口吗?

我听说当TCP数据包丢失时,一切都会因为拥塞而卡住,直到最终收到丢失的数据包。例如服务器在同一端口上发送这些数据包:1(UDP),2(UDP),3(TCP),4(UDP),5(UDP),6(UDP)所以如果数据包3丢失,客户端将无法接收数据包4、5、6,直到数据包3被接收,对吗?如果应用程序使用两个端口,一个用于TCP,另一个用于UDP,TCP拥塞是否会影响UDP端口性能?我的意思是UDP数据包会卡住吗? 最佳答案 TCP拥塞应该只会影响当前连接(套接字)。简而言之,对于每个连接,都有一个TCP滑动窗口,用于组装数据包。如果一个数据