Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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
常量轮询,还是Java RMI?_Java_Udp_Rmi - Fatal编程技术网

常量轮询,还是Java RMI?

常量轮询,还是Java RMI?,java,udp,rmi,Java,Udp,Rmi,如果我将数据包从一台计算机发送到另一台计算机,通过以太网电缆直接连接,那么使用UDP在接收计算机上不断轮询是否更快,或者使用Java RMI让发送方将数据包“交给”接收计算机 我不知道是否有任何性能变化?UDP通常更快,因为在传输过程中没有额外的确认开销,因为不需要处理接收确认 使用TCP时,会将确认信息传输回数据源。全双工通信可以在不中断传入数据流的情况下进行该确认的传输;但是,您确实需要等待一定的时间才能使确认返回给发送者,并让发送者进行处理 虽然假设两台计算机都足够快来处理数据流处理,但在

如果我将数据包从一台计算机发送到另一台计算机,通过以太网电缆直接连接,那么使用UDP在接收计算机上不断轮询是否更快,或者使用Java RMI让发送方将数据包“交给”接收计算机


我不知道是否有任何性能变化?

UDP通常更快,因为在传输过程中没有额外的确认开销,因为不需要处理接收确认

使用TCP时,会将确认信息传输回数据源。全双工通信可以在不中断传入数据流的情况下进行该确认的传输;但是,您确实需要等待一定的时间才能使确认返回给发送者,并让发送者进行处理

虽然假设两台计算机都足够快来处理数据流处理,但在现实世界中,计算机可能会发现自己正在执行多个任务,这可能会中断以线路速度处理网络流量的能力。在这种情况下,如果发送计算机无法足够快地接收确认(或接收计算机无法足够快地发送确认),则您可能会耗尽未确认数据包的窗口,这将导致传输计算机停止传输,直到它确定传输的内容需要重新传输或接收


但UDP并不是一个好办法,因为它不确认收到的解决方案是允许任何数据包在任何时候消失而不通知。因此,对于不需要完全传输的数据(实时语音,如果它被丢弃,则从“现在”数据包开始比收集所有数据包更重要),或者对于通过更高效的特定于应用程序的算法管理重传的数据,它是理想的选择。

谢谢您的回答。我并不是真的在问TCP和UDP,这是我收到新数据警报的方式。我担心的是,不断地轮询并不是尽快接收数据包的最有效的方法——或者这是尽快接收数据包的最佳方法吗?Java RMI通常是用TCP实现的,所以RMI是在TCP之上的RMI
,所以它是在TCP之上附加了一个协议的TCP。使用UDP,您必须在上面构建协议,对于特定场景,您可以轻松击败TCP,但是对于一般场景,您将重新实现TCP。嗨,Edwin,不确定您是否可以在我的原始问题下面看到我的评论。我想测试我能在一台计算机上接收多少条消息(如果你听说过的话,类似于Java Disruptor模式),这就是我的问题的来源。请看:我非常熟悉破坏者模式。也就是说,中断模式是在消息从网络基础结构中读出之后,为了低网络延迟,需要考虑网络的行为,而不是考虑网络后处理代码。为谁?你说的“不断投票”是什么意思?接收UDP数据报的正常技术是一个单独的线程,它在
receive()
方法中阻塞,而不是“持续轮询”。我打算在两台计算机之间编写一个单线程Java框架,尝试并基准测试我可以在两台计算机之间发送多少“消息”。我不确定是否有一个while(true)循环,不断检查新的UDP消息是最快的方法。我想这就是receive()的全部功能?它不是“我的receive()”,而是DatagramSocket的receive(),它按照Javadoc中的说明执行。如果您有额外的限制,例如单线程,那么应该在问题中说明这些限制,但是您正在加载骰子,因为RMI不是单线程的。