请求 - 带有异步 .Net 套接字库的响应模式

Posted

技术标签:

【中文标题】请求 - 带有异步 .Net 套接字库的响应模式【英文标题】:Request - Response pattern with Async .Net Sockets library 【发布时间】:2012-01-24 20:33:59 【问题描述】:

我创建了当前能够在服务器和客户端之间交换单个数据包的异步库。现在我正在尝试设计一种以“请求-响应”方式处理数据包的机制。

更准确地说,让我们看看这个场景:

    客户端发送 GiveMeFile 数据包 服务器收到后立即回复HereIsYourFile响应包 客户端收到此响应并保存文件

在第 2 步中,客户必须期待响应,并且必须在特定时间收到响应。

我正在考虑某种“预期”响应队列,这将清除所有收到的响应,但我不确定这是否是个好方法。

您对如何实现异步请求-响应模式有任何建议吗?

【问题讨论】:

您应该通过一些细节改进您的问题:您的命令是否必须是通用的或恒定的,例如我有“giveMeInt”和“giveMeString”命令,如果我想实现更多,我只需将“giveMeBytes”添加到可能的命令列表中并对此做出响应。这样更容易理解要走的路。 【参考方案1】:

我已经使用SocketAsyncEventArgs 实现了一个高性能 TCP 服务器。你可以在谷歌上搜索它,但有一篇不太老的文章here 仍然很有用。 SocketAsyncEventArgs 完全为我设计了一个并发 TCP 服务器。

【讨论】:

以上是关于请求 - 带有异步 .Net 套接字库的响应模式的主要内容,如果未能解决你的问题,请参考以下文章

如何仅使用套接字库通过 Python 正确发送 HTTP 响应?

在 C++ 中测试套接字库的线程应用程序示例

Android 上的异步套接字实现

同步异步阻塞非阻塞的概念理解

windows下socket编程小例子

是否有一个 TCP 套接字库/协议可以进行消息框架并在 JS 和 C# 中受支持?