草庐IT

c# - 为 TCP/UDP 传输安全地标记数据包的开始/结束

我正在编写一个基于客户端/服务器的应用程序,该应用程序在本地网络上运行,以在客户端和服务器之间交换数据,我创建了一个非常简单的NetworkCommand对象,该对象被转换为byte[]并使用TCP或UDP发送。问题是正确地标记了end-of-packed,现在我使用了byte[]{0,0,0}和数据包结束标记,但在整个数据包本身中似乎重复了太多次。那么,我如何安全地标记end-of-packet?网络命令.csusingSystem;usingSystem.IO;namespaceCybotech.Common{publicenumCommandType{NeedIP=1,IPDat

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状态。这是一种(相对)安全的身份验证方法还是有简单

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

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

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/UDP 数据包会发生什么?

我有一个关于套接字编程的问题。当我使用套接字发送数据时,我们可以使用sendto()等API来使用TCP或UDP发送。对于sendto(),我们给出一个数组指针和我们要发送的字节数。在这种情况下,如果我给出一个大字节数(例如:20000字节),根据我的理解,网络的MTU不会那么大,所以套接字实际上发送多个数据包而不是一个大数据包。既然这20000字节被拆分成了几个UDP/TCP数据包,那么一开始这20000字节会不会被看成一个数据包呢?这个过程是UDP/TCP碎片吗?我的另一个问题是,如果我将小于MTU的数据放入sendto(),那么我可以保证调用一次sendto(),socket只发

networking - 有哪些不使用 TCP 或 UDP 等端口的基于 IP 的协议(protocol)?

我正在学习通常称为TCP/IP的互联网协议(protocol)(IP)。据我了解,传输控制协议(protocol)(TCP)实际上与IP完全不同。它是IP之上的一层,可以进行更多的数据完整性控制。而且,据我所知,所谓的“端口”,例如HTTP协议(protocol)的“端口80”,是TCP的东西,而不是IP的东西。那么,哪些在底层使用Internet协议(protocol)的协议(protocol)不使用端口的概念?如果您可以链接到实现此类协议(protocol)的开源软件,那就太好了。 最佳答案 Cisco有一个他们的路由器支持的协