我用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的话,由于数据量很大,速度很慢,不能满足系统的要求!!!
就是说我得一个send,到了接收端被自动分成了两次onreceive事件;我想这种情况应该是缓冲区不够的情况下才会出现,但是tcp默认的好像是8k吧,5k的大小应该不算大,况且它有的包也就一个onreceive就接收过来了。
因为我得发送端发送的数据包长度不定,所以我理想的情况是一次send就对应一次onreceive事件,在onreceive中能一次把包接收到才行
以上所说的问题会出在哪里,高手们给点建议,或者还有什么好的方法可以避免!
我把每次一个包由5k调整到1k,就完全正常,但是如果一个ontimer中发一个包,每个包1k的话,由于数据量很大,速度很慢,不能满足系统的要求!!!
解决方案 »
- 编写一个WIN32API应用程序,在主窗口中创建一个编辑框和一个按钮,单机按钮后,将编辑框的内容用消息对话框显示出来
- 求代码:使窗口一启动就一直固定了大小,最大化按钮无效,并且不可以拖动改变它的大小.
- 哪里可以找到关于mfc的所有类的帮助
- 我来试试
- 怎样将十六进制的字符串转成整形?
- 关于调用对话框中方法时出现的问题。HELP!!!!!!!!!!!!!!!
- ADO的问题。ADO调用存储过程是否能既返回参数,又返回一个数据集?
- 谁有自画CEDIT的源代码,能提示一下怎么做也行
- 请问怎么获得当前活动窗口的编辑框的内容?
- IE加载atl控件,退出ie出现崩溃,用windbg查看如下信息,求解是什么原因?
- 急问stack的用法
- 关于窗口的超难问题
你这种想法是不可能实现的。所以要在应用层定义协议来完成。