2013-04-18 151 views
2

我需要能够随时从服务器异步接收消息。但是,我也想使用同步套接字;当我发送消息时,我想阻止,直到我收到回复。同步和异步是否可以相互发挥,否则会引起问题?我可以在一个项目中使用异步和同步套接字吗?

换句话说,我用BeginReceive()异步听。如果我打电话Receive()(据我所知,同步版本),接下来的传入消息是否会被接收回调,BeginReceive回调,无论是,还是更差?

这会发生在客户端,服务器可以保持100%异步。

回答

0

做同步和异步发挥出色彼此?

号一般来说,他们不玩好起来。

这并不是说,它永远不能做,但是它有时是不可能的,而且通常混乱和很难的工作。除非你有一个令人信服的理由否则,否则我会建议坚持一个或另一个。

0

从MSDN:

BeginReceive: “开始异步从连接的Socket接收数据。”

所以,我要说,即使BeginReceive从Socket类是指接收异步数据得出,分别为Receive方法被用于从绑定的袜子同步检索数据。

0

是,它是完全可能的,关键是要隐藏在其中“出现”在一个同步的方式行事的包装异步行为。有一篇文章就是为网络库NetworkComms.Net完成here

声明:我是该库的开发人员。