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

时间:2014-03-18 10:20:34

标签: java c sockets tcp buffer

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

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

在大多数套接字通信教程中,他们使用的缓冲区大小约为1024 Byte或更低。 将缓冲区设置为64KB是否是(可能是性能)问题?

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

如果这是一个问题:如何处理大于缓冲区的消息?

2 个答案:

答案 0 :(得分:1)

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

通常,您可以忽略用于创建客户端或服务器的语言,只关注网络协议。每种语言都有自己的库来轻松处理套接字。

答案 1 :(得分:0)

我建议使用更大的缓冲区,但我怀疑你看是否使用1 KB或64 KB的差异不到5%。

注意:b = bitB = bytek = 1000和K = 1024最好不要混淆(不是在这里可能很重要)