我用tcp连接进行通信,发送90个包,每个包5120个字节(5k),发送端在ontimer中每次发一个包,发送是没有问题的,每次都是5120个字节一次send出去;接收端我在onreceive事件中接收,但我发现接收的时候有时候是在一个onreveive中一下子接收到5120字节,有时候却要在两次onreceive中接收到一个完整包,就是说一次接收4320,下一次接收800,加起来刚好5120;
就是说我得一个send,到了接收端被自动分成了两次onreceive事件;我想这种情况应该是缓冲区不够的情况下才会出现,但是tcp默认的好像是8k吧,5k的大小应该不算大,况且它有的包也就一个onreceive就接收过来了。
因为我得发送端发送的数据包长度不定,所以我理想的情况是一次send就对应一次onreceive事件,在onreceive中能一次把包接收到才行
以上所说的问题会出在哪里,高手们给点建议,或者还有什么好的方法可以避免!
我把每次一个包由5k调整到1k,就完全正常,但是如果一个ontimer中发一个包,每个包1k的话,由于数据量很大,速度很慢,不能满足系统的要求!!!