【问题标题】:In a tcp connection... Java (Packets)在 tcp 连接中... Java(数据包)
【发布时间】:2012-05-22 12:58:37
【问题描述】:

当我有一个使用数据包的 TCP 连接时..(服务器/客户端应用程序)我是否应该继续来回发送数据包(在服务器和客户端之间)只是为了查看连接是否处于活动状态还是没有必要?就像一个 KeepAlive 数据包..

另一个问题是,如果我通过流发送一个 int (DataOutputStream) 而不是发送一个平均有 5 个字段的 Packet 对象 (ObjectOutputStream),它是否会产生巨大的差异(性能方面),至少有 3 个方法和一些吸气剂和二传手?它会在性能方面产生如此大的差异吗?

【问题讨论】:

  • 为什么是-1?我的线程有什么问题?
  • 也不知道,这是一个有效的问题。您必须考虑的方面是如何将保活机制嵌入到您现有的流量中。如果您一直在使用 ObjectOutputStream,那么您应该坚持使用这种方法。从 OOS 反序列化小对象不应影响您的性能。
  • @Trixmix:我对反对票一无所知,但你应该知道SO is not a forum,因此这不是一个线程,而是一个问题。 ;-)
  • 是的,我习惯了论坛感谢您的更正!

标签: java tcp client packets


【解决方案1】:

是的。这称为心跳。这有助于心跳接收器检测连接是否存在问题。关于第二部分,如果您尝试发送对象,则需要反序列化和序列化。这肯定会对性能产生影响。如果你想从网络延迟的角度了解性能,应该不会有太大的差异。

【讨论】:

  • 所以如果我使用对象流制作了一个相当大的游戏,它应该不会造成网络延迟,但可能会影响客户端的性能?
  • 即使你投入更多的内存,它是否会将性能降低到几乎无法播放的程度?
  • 你能快速回答我的问题吗?
  • RAM 在其中发挥的作用不大。您能否澄清您是否担心由于心跳或对象(de)\序列化导致的网络延迟。如果您正在设计网络游戏,那么我的建议是坚持使用基本数据类型。
  • 我正在设计一款可以在单人游戏和多人游戏中运行的游戏。我已经创建了单人游戏的基础知识,并希望尽早实现多人游戏以供以后使用。所以它不像整个游戏是服务器/客户端它只是它的多人游戏部分
猜你喜欢
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-17
  • 2016-10-24
  • 1970-01-01
相关资源
最近更新 更多