c# - 我可以在一个项目中使用异步和同步套接字吗?

标签 c# sockets

我需要能够随时从服务器异步接收消息。但是,我也想使用同步套接字;当我发送消息时,我想阻止直到收到回复。同步和异步能很好地相互配合,还是会产生问题?

换句话说,我使用BeginReceive() 来异步监听。如果我调用 Receive()(据我所知是同步版本),Receive 回调、BeginReceive 回调是否会拾取下一条传入消息,两者都不是,或者更糟?

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

最佳答案

Do synchronous and asynchronous play well with each other?

没有。一般来说,他们在一起玩得不好。

这并不是说它永远无法完成,但它有时是不可能的,而且通常令人困惑且难以处理。除非您有令人信服的理由不这样做,否则我建议您坚持只使用其中之一。

关于c# - 我可以在一个项目中使用异步和同步套接字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16090825/

相关文章:

c# - 应用程序洞察记录错误所需的确切时间是多少

c# - 什么时候单个语句需要花括号?

c# - List<List<int>>的组合

c# - 如何仅在必要时使用 ADO.NET Entity Framework 加载 varbinary(max) 字段?

c# - UDP Socket绑定(bind)任何IP? (通配符 - 特殊)

iphone - 通过 NSSocket 作为 NSData 接收的动画 GIF 图像无法拆分帧

c# - 在 Windows Phone 应用程序中格式化 MVVM 中的数据

mysql - 在个人项目中使用mysql NPM模块时出现ER_ACCESS_DENIED_ERROR

c - 如何判断文件句柄是否是套接字?

linux - 有多少方法可以在客户端尽快减少TIME_WAIT的数量