我用mina传递一个10k左右的字节数组,格式是自己定位的,里面包含报文长度,文件和校验字节,客户端和服务端都分别设置了readBufferSize为10240,但是客户端发往服务端时,每次只能接受1k多一点,要循环接收9次左右,效率太低了,设置了readBufferSize为10240,目的就是为了 一次接受完毕的,但是要循环接受好多次,请问大神这是为什么啊?
一般来说,sendbuf 和 recvbuf代表发送和接收缓冲区大小,但它们并不代表实际发送或接收的字节数。题主所遇到的问题,根据我肤浅的理论知识,以为是tcpip协议本身的限制。在tcp面向连接通信时,是以字节流形式传输,每次传输字节大小不定,只是多次接收一定能够收完(稳定性);在UDP无连接通信时,是以数据报形式转发,但因为网络中存在数据报包大小限制,所以也不一定就以设置的最大发送缓冲区大小来收到~