首页 新闻 搜索 专区 学院

Tcp服务端异步发送问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-04-15 09:49

我的场景是:服务端与客户端有一个长连接,服务端会异步发送数据给客户端,而客户端使用TcpClient用同步的方式与服务端通讯。服务异步给客户端发送后,我会调用了BeginReceive方法准备接收客户端数据,因为我需要往IAsyncResult参数传递一个【发送信息】(一个自定义类)。我的目的是在接收回调方法触发后可以取出【发送信息】。

现在的问题是,客户端会发送2次数据(2次加起来才是完整的一次通信数据)应答服务端。而2次触发的回调方法,第一次从IAsyncResult里面取不出【发送信息】,而第二次可以,这样子就不能完整的接收到数据(因为2次的IAsyncResult不是同一个引用了)。

 

求解。

苍苔的主页 苍苔 | 菜鸟二级 | 园豆:205
提问于:2013-04-13 15:50
< >
分享
最佳答案
0

IAsyncResult  的state数据给个标识吧,在服务器上存个字典记录下,两次信息合并后再做处理……

收获园豆:10
滴答的雨 | 老鸟四级 |园豆:3690 | 2013-04-13 18:20

找不到原因,也只好这样子做

苍苔 | 园豆:205 (菜鸟二级) | 2013-04-15 09:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册