java - 通过套接字发送 1 个大数据包比发送几个小数据包更好吗? java

标签 java sockets server

我正在制作一个服务器/客户端程序,通过套接字从客户端向服务器发送 2 个类和 2 个整数,然后再从服务器发送回客户端(依此类推)。这需要相对较长的时间,并且这个过程位于游戏循环内,这使得事情变得很慢。我的问题是:发送这些东西的更快方式是什么?

  • 打包所有这些东西(每次我需要时),然后将大数据包发送到服务器并再次返回(然后解压缩数据)。
  • 将这些东西一件一件地发送出去,然后再发回来。这将节省打包所有这些东西所需的时间(我猜)。
  • 或者这些方法之间根本没有区别?

小伙伴们你们有什么看法呢?还有其他方法可以加快此类流程的速度吗?

Edit1:我正在使用 TCP。

最佳答案

我想说选择单包选项。与在网络堆栈上往返以将数据 block 传输到线路上相比,放入缓冲区发送多个项目的成本相对较低。将事情作为一个 block 进行将倾向于获得 IP 窗口并调整为更大的 block ,因此它们往往比必须通过网络路由多个数据包流动得更快。

关于java - 通过套接字发送 1 个大数据包比发送几个小数据包更好吗? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31105507/

相关文章:

java - BigDecimal,精度和规模

python - Ruby 与 Python - 套接字库

连接到套接字使连接处于 TIME_WAIT 状态

python - 我在运行 'sudo apt autoremove python' 时删除了数据库

linux - 我该如何解决 aws ec2 "statuscheckfailed"问题?

java - 如何在android中检查时间只在晚上的两个时间之间

java - 出版商名称未经验证,因此列为未知

java - Servlet 的 Spring root WebApplicationContext

c 应用程序服务器套接字连接挂起

c++ - 通过 Boost ASIO 服务器发送缓冲区 - 发送错误数据