有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用专用的DatagramSockets发送和接收UDP数据报是否有(性能)好处?

我有一些数据报socket,一个用于输入,另一个用于不同端口的输出。有什么理由这样做吗?是为了最好的表现

| <- Receiver, accept and accumulate some packets received from client
| <-> Proccess, request packets from Receiver, process and put some response into Sender
| -> Sender, just immediate send

我正在考虑合并接收器和发送器,并使用一个插座。 接收器和发送器是一些模块。它们可以在程序的其他部分初始化(例如,在通过web的其他模块之间的通信中)


共 (1) 个答案

  1. # 1 楼答案

    从这个意义上讲,使用两个套接字的数据传输速度不会比使用一个套接字的数据传输速度更快或传输量更大,这对性能没有好处

    使用不同的udp套接字进行接收和发送还有其他很好的理由,这与应用程序协议的设计方式和可靠性有关

    每个套接字都有自己的发送和接收缓冲区。如果这些缓冲区中的任何一个已满,数据包将被丢弃。换句话说,将单个套接字用于多种用途可能会增加数据包丢失的风险

    此外,对于不同的套接字,您可以使用不同的本地端口。不同本地端口的一个好处是,它为您提供了一种为不同客户端处理不同数据包流的简单方法。您可以在TFTP协议https://en.m.wikipedia.org/wiki/Trivial_File_Transfer_Protocol的设计中看到一个例子