草庐IT

python - 如何让服务器监听 TCP 和 UDP?

我正在使用pythontwisted,我有两台独立的服务器在工作,一台接收TCP,一台接收UDP,它们各自使用reactor.listenTCP(PORT,factory)reactor.run()和reactor.listenUDP(PORT,BaseThreadedUDPServer())reactor.run()它们都可以工作,但现在我想将它们组合成一个同时接收TCP和UDP的服务器,但它们都使用变量reactor。reactor不是扭曲的,不是我自己的。如果是我自己的,我可以为每个更改名称。谢谢! 最佳答案 这只是对Mark

c - 如何使用 C 对 TCP 和 UDP 进行基准测试?

我想使用C套接字为TCP和UDP测量消息延迟和吞吐量。我正在编写在不同服务器上运行的client.c和server.c(问题1:我必须这样做吗?)来完成此操作。我必须使用不同的数据包大小和多次试验进行多次测量并绘制我的结果。对于消息延迟:发送不同大小的数据包并测量往返时间并除以2以获得延迟。问题2:我发送了一个大小为x的数据包,然后我从server.c将数据包发回。所以在客户端我启动计时器,发送数据包然后等到我收到数据包然后停止计时器。timer/2是我的延迟?衡量这个的步骤是什么?对于吞吐量:问题3:如何衡量两者的吞吐量?执行此操作的步骤是什么?我是使用C语言进行Unix套接字编程的

c++ - 在 MFC 应用程序中监听 UDP 或切换到 TCP

我正在编辑一个遗留的MFC应用程序,我必须添加一些基本的网络功能。操作方必须接收一个简单的指令(数字1、2、3、4...)并根据该指令执行一些操作。客户希望延迟尽可能快,所以我自然而然地决定使用数据报(UDP)。但是阅读各种资源让我感到困惑。我无法在MFC中收听UDP套接字(CAsyncSocket),只能调用阻塞和等待的Receive。屏蔽UI并不是明智之举。所以我想我可以使用一些线程技术,但由于我对MFC不是很了解,应该如何实现?问题的另一部分是考虑到可靠性和实现问题,我应该这样做还是恢复到TCP。我知道UDP不可靠,但它到底有多不可靠?我读到它最多快50%,这对我来说很重要。我使

python - TCP 与 UDP 套接字延迟基准

我已经在Python中通过TCP和UDP实现了套接字通信的小型基准测试。令人惊讶的是,TCP的速度几乎是UDP的两倍。为了避免路由影响,服务器和客户端运行在同一台Unix机器上,但在不同的线程上。也许代码有用。这是服务器代码:importsocketimportsyshost='localhost'port=8888buffersize=8server_address=(host,port)defstart_UDP_server():socket_UDP=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)socket_UDP.bind(ser

vb.net - VB.Net UDP 与 TCP 中的文件传输应用程序和

我正在用VB.Net开发文件传输应用文件的大小各不相同,但最大可达10+GB。我已经创建了一个聊天应用作为测试。在客户端,我运行此代码以连接到服务器。DimclientSocketAsNewSystem.Net.Sockets.TcpClient()DimserverStreamAsNetworkStreamclientSocket.Connect("127.0.0.1",80)我也可以用它来传输文件吗?我希望该应用能够通过防火墙和其他东西运行。所以我想我需要客户端上的传出数据通过端口80。在服务器上我希望能够在另一个端口(例如8888)上接收数据。这可能吗?最后一个问题是。为此,我应

networking - 如果 UDP 不可靠,为什么在传输层使用它

抱歉这个愚蠢的问题。传输层的功能是消息的可靠传递。UDP本质上是不可靠的,那我们为什么要在传输层使用它呢?谢谢编辑:澄清一下,我已经阅读了Wiki和其他来源。我的问题是UDP是不可靠的(我知道它的原因、优势和使用地点等),为什么不在其他层而不是传输层使用它(UDP),这意味着可靠性。 最佳答案 有时,快速且无间断地发送数据比流的可靠性更重要。DNS使用UDP,因为DNS服务器和客户端之间的交易单程仅包含一个数据包。如果数据包丢失,将根据客户端的请求重新传输。同样,流式视频通常使用UDP作为传输协议(protocol),因为偶尔丢失数

tcp - UDP - 可选校验和

从我读到的关于UDP的内容来看,它没有错误处理,没有检查发送/接收数据的顺序,没有检查重复的数据包,没有检查损坏的数据包,显然不能保证发送的数据包是均匀的收到...考虑到这一点,为什么地球上实际上可以选择在UDP中使用校验和?因为如果您想确保以正确的顺序接收到发送的数据(并且没有损坏等),那么您肯定会使用TCP... 最佳答案 UDP数据包包含一个16位CRC校验和的字段,接收操作系统将使用它来检查数据包是否损坏。如果校验和存在但失败,则数据包将被静默丢弃。应用程序会注意到数据包消失并采取纠正措施。所有现代操作系统都默认启用UDP校

C# 使用 tcp 和 udp 协议(protocol)

我需要在我的应用程序中使用udp和tcp连接,TcpClient/TcpListener很少处于事件状态,但udp是主要用途。这是服务器代码:staticvoidMain(string[]args){TcpListenerlistener=newTcpListener(IPAddress.Any,25655);listener.Start();Socketsck=listener.AcceptTcpClient().Client;UdpClientudpServer=newUdpClient(1100);IPEndPointremoteEP=newIPEndPoint(IPAddres

java - 在同一个应用程序中使用 TCP 和 UDP 有什么问题吗?

我的问题的重点是询问是否接受同时使用TCP和UDP在客户端和服务器之间进行通信。我正在制作一个实时客户端服务器游戏,其中需要保证部分通信(登录等),但其他部分可以丢包(状态更新等)。所以,我想使用UDP进行大部分数据通信,但我不想实现自己的框架来确保我的控制通信(登录)得到保证。那么,最初使用TCP管理连接,然后在单独的端口上来回发送数据通信包是否合理? 最佳答案 您绝对应该那样做(使用TCP和UDP来完成不同的通信任务。)而且您甚至不必使用两个不同的端口。Onewillsuffice.您可以在同一端口上收听两种不同的协议(prot

TCP 与 UDP - 使用两者引起的问题

当我学习各种技术时,我经常尝试思考我经常使用的应用程序如何实现这些东西。我玩过一些MMO和一些FPS。我环顾四周,偶然发现了这个线程:http://www.gamedev.net/topic/319003-mmorpg-and-the-ol-udp-vs-tcp我一直看到UDP在允许丢失一些数据包的情况下大放异彩。涉及的开销更少,更新速度更快。环顾四周并阅读了各种文章和主题后,我发现字符定位通常是使用UDP完成的。由于正在发生的所有快速变化,像FPS这样的游戏通常会使用UDP来完成。我已经多次看到有人指出同时使用UDP和TCP时可能出现的问题。这些问题可能是什么?这些问题是新手程序员最