我必须在用Java编写的服务器和用C编写的客户端之间实现套接字通信。
我必须传输的最大数据量为64KB。
在大多数套接字通信教程中,他们使用的缓冲区大小约为1024 Byte或更低。 将缓冲区设置为64KB是否是(可能是性能)问题?
这两个软件部件将在同一台机器上运行,或者至少在同一局域网中运行。
如果这是一个问题:如何处理大于缓冲区的消息?
答案 0 :(得分:1)
缓冲区可以小于消息而没有任何问题,而接收方以发送方生成数据的速度消耗数据。更大的缓冲区让您的接收器有更多的时间来处理消息,但通常您不需要巨大的缓冲区:例如,当您下载软件时,文件的大小可能超过1GB,但您的浏览器/ ftp客户端只需读取缓冲区并将数据存储在本地硬盘的文件中即可。
通常,您可以忽略用于创建客户端或服务器的语言,只关注网络协议。每种语言都有自己的库来轻松处理套接字。
答案 1 :(得分:0)
我建议使用更大的缓冲区,但我怀疑你看是否使用1 KB或64 KB的差异不到5%。
注意:b
= bit
和B
= byte
,k
= 1000和K
= 1024
最好不要混淆(不是在这里可能很重要)