socket丢数据的一个原因
2011-08-09 15:59 Jeff 阅读(1973) 评论(0) 编辑 收藏 举报
多任务环境中,某任务从socket接收数据,并传给底层处理. 程序结构如下:
while(1){ socket receive; Invoke other module handle the received data; }次任务每收一条数据都发给底层去处理.处理完再收下一条数据. 测试结果丢数据,ethereal上看到客户端已经发送数据,但是这个任务只收到部分数据. 后来查证,每次收数据,处理数据的module会延迟几个或者几十毫秒.累积之后导致此任务接收数据丢失.