有 Java 编程相关的问题?

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

Java和C之间的socket通信:良好的缓冲区大小

我必须在用Java编写的服务器和用C编写的客户端之间实现socket通信

我必须传输的最大数据量是64KB

在大多数socket通信教程中,它们使用的缓冲区大小约为1024字节或更小。 将缓冲区设置为64KB是否存在(可能是性能)问题

这两个软件部件将在同一台机器上运行,或至少在同一局域网中运行

如果这是一个问题:如何处理通常比缓冲区大的消息


共 (2) 个答案

  1. # 1 楼答案

    当接收方以发送方生成数据的速度消耗数据时,缓冲区可以比消息小而没有任何问题。更大的缓冲区可以让你的接收者有更多的时间来处理消息,但通常你不需要一个巨大的缓冲区:例如,当你下载软件时,文件的大小可以超过1GB,但你的浏览器/ftp客户端只读取缓冲区,并将数据存储在本地硬盘的文件中

    一般来说,您可以忽略用于创建客户机或服务器的语言,只有网络协议才重要。每种语言都有自己的库来轻松处理套接字

  2. # 2 楼答案

    我建议使用更大的缓冲区,但我怀疑您看到的差异不到5%,无论是使用1KB还是64KB

    注意:b=bitB=bytek=1000和K=1024最好不要弄糊涂(这不太重要)