【问题标题】:Asynchronous socket programming异步套接字编程
【发布时间】:2010-02-23 11:46:32
【问题描述】:

我正在 vb.net 中创建异步套接字编程。我使用了来自以下链接的异步客户端和服务器代码中的代码:

http://msdn.microsoft.com/en-us/library/fx6588te.aspx 用于服务器程序

客户端程序按照http://msdn.microsoft.com/en-us/library/bew39x2a.aspx存在。

当我尝试为多个客户端连接时,第二个客户端总是等到第一个客户端完成呼叫。我希望客户同时接听电话。

WCF 是否有助于让多个客户端同时接听电话?如果是这样,什么是 WCF,它将如何提供帮助。或者有什么其他概念可以提供帮助?

【问题讨论】:

  • 你可以尝试使用线程来处理多个并发请求。

标签: vb.net wcf sockets asynchronous client-server


【解决方案1】:

是的,WCF 可以在这方面为您提供帮助。但它只实现了众所周知的协议,如 SOAP、WS-*、JSON,以及一些专有协议,如二进制 TCP 绑定。

如果需要,您只会使用异步套接字编程

  • 高可扩展性(超过 20 个同时客户端)
  • 自定义协议

如果你构建在 HTTP 之上,我推荐 HttpListener

如果您需要具有少量客户端的自定义协议,请使用多线程同步套接字编程。

如果你仍然想用异步套接字实现服务器,那么你需要一个接受连接的连续循环(EndAccept() 之后立即再次调用BeginAccept())然后启动BeginReceive()

我可以根据经验告诉你,调试这样的服务器并不容易。即使通过详细的日志文件也很难跟踪事件链。祝你好运:)

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    相关资源
    最近更新 更多