tcp socket的read方法如何工作?

时间:2016-12-26 22:31:39

标签: java sockets tcp

目前我遇到一种情况,我想将输入流读取到只包含单个字节的字节数组。我重复这样做一定次数,以确保我得到相应的字节长度。例如,40个字节读取40次。但是在这个套接字的另一端,它在每个写入方法中写入512个字节。(实际上在大多数情况下,读取缓冲区是512字节,只是在某种情况下我一次读取一个字节)。我想知道在这种情况下,如果发送套接字仍然每次在网络上写入512字节,并且接收套接字接收所有这些并将它们存储在本地字节数组中,并且read方法每次从本地数组读取一个字节或发送套接字每次只写1个字节?这个问题可能听起来很混乱,希望我说得很清楚。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

它会阻塞,直到内核的套接字接收缓冲区中有一些数据可用,然后传输尽可能多的字节。