我在做一个TCP/IP通信程序,在发出一个请求包后,希望收到一个应答包,或者什么也没有,等待一段时间后自动返回。
但是在试验时发现,如果连续发送两个请求包,可能两个应答包并在一起返回了(单包数据量比较小,不超过50字节)。
我想,windows是事件驱动的,操作系统在接收缓冲区准备好以后,再发个事件消息通知程序的。因此我想如果发现同时收到两个以上的数据包,取得第一个包后就模仿操作系统发一个消息给程序自身让它去处理,然后再取下一个包,再发消息,就像两个包是单独到达的一样。
现在的问题是,不知道操作系统发的这个消息是什么。用Spy++看过,还是不知道。哪位知道的请告诉我,或者如果有更好的方法,也请告知,253了
但是在试验时发现,如果连续发送两个请求包,可能两个应答包并在一起返回了(单包数据量比较小,不超过50字节)。
我想,windows是事件驱动的,操作系统在接收缓冲区准备好以后,再发个事件消息通知程序的。因此我想如果发现同时收到两个以上的数据包,取得第一个包后就模仿操作系统发一个消息给程序自身让它去处理,然后再取下一个包,再发消息,就像两个包是单独到达的一样。
现在的问题是,不知道操作系统发的这个消息是什么。用Spy++看过,还是不知道。哪位知道的请告诉我,或者如果有更好的方法,也请告知,253了
解决方案 »
- 关于ExpressQuantumGrid分组
- SOCKET,请高手指点!!!!
- 固定资产管理系统 需要帮助解决立即加分
- 高手请进,如何解决Fastreport在不同打印机上打印效果不同的问题? 100分奉上,不够可以再加!
- 怎样解决登陆界面的查询问题。。请进谢谢。
- 如何用quickreport实现主副明细打印?
- 哪里能找到delphi做组件(第三方控件)的资料?高分求购!在线等。
- 我的存储过程控件不能用,为什么?
- 救急。。。哪位可以帮我转这一句代码啊
- 如何对tif文进行压缩??急!!!!!!!!!!!!!
- 用delphi怎麼寫這樣一個方法阿,大家給幫忙解決一下,謝謝了!
- 查询某个时间段内记录的问题,急啊,有劳各位了!
还有包头和结束符号一定要有
这样便于判断
Indy还没用过,公司的工具太旧了,是在一个用 Delphi 5写的程序上再做修改,Indy得用 D7吧?
http://www.indyproject.org/download/Files/Indy9.html
就是客户端是一个嵌入式的TCP/IP模块,提供的几个库函数有限,没法对socket做更多控制