目前我遇到一种情况,我想将输入流读取到只包含一个字节的字节数组。我重复执行此操作一定次数,以确保获得相应的字节长度。例如,40 个字节读取 40 次。但是在这个套接字的另一端,它在每个写入方法中写入512字节。(实际上在大多数情况下读取缓冲区是512字节,只是在特定条件下我一次读取一个字节)。我想知道在这种情况下发送套接字是否仍然每次都通过网络写入 512 个字节并且接收套接字接收所有这些并将它们存储在本地字节数组中并且读取方法每次从本地数组读取一个字节或者发送套接字每次也只写入 1 个字节?这个问题听起来有点困惑,希望我说清楚了。非常感谢任何帮助!
最佳答案
它会阻塞,直到内核的套接字接收缓冲区中有一些数据可用,然后传输尽可能多的可用字节。
关于java - tcp socket 的 read 方法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41336929/