【问题标题】:Writing a c# client/server编写 C# 客户端/服务器
【发布时间】:2010-10-31 17:09:15
【问题描述】:

我想编写一个大致充当聊天服务器的 C# 服务器(客户端连接一段时间,相同的消息可以发送给许多客户端,...)。

我想知道您是否可以给我一些开始的提示(什么样的架构(客户端线程/iocp/异步/...)可以很好地扩展(应该能够处理数千个同时连接) )。

【问题讨论】:

  • 这是用于学习(即制作多线程聊天服务器非常适合学习如何使用网络和扩展多个连接)还是用于生产?
  • 我有兴趣学习编写 prod quality server 的良好实践。但我项目的目标只是为了更深入地了解不同的机制。
  • 如果您的目标是了解机制,我会选择 TcpClient。它们使用起来非常简单,并且几乎可以准确地揭示正在发生的事情。 KClough 的建议教程向您展示了如何使用它们。

标签: c# networking


【解决方案1】:

这里有一个教程,可以让您有一个良好的开端。

看起来它使用了线程实现,因此应该可以很好地扩展。

Building a Chat Server and a Chat Client

【讨论】:

    【解决方案2】:

    这是一个使用 WCF 的示例:http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx

    希望您不必使用 WCF 处理原始套接字,但看看 WCF 是否可以处理数千个连接会很有趣...

    【讨论】:

    • 这是一个真正的问题吗?如果 WCF 无法扩展,什么是合适的替代品?
    【解决方案3】:

    如果您需要您所说的那种可扩展性,IOCP 是唯一的选择。

    但有一些陷阱需要避免,因此请阅读我在How to write a scalable Tcp/Ip based server 上的详细答案以及同一问题的已接受答案。

    【讨论】:

      【解决方案4】:

      这可能是一个很好的起点: http://www.dreamincode.net/forums/showtopic33396.htm

      【讨论】:

        猜你喜欢
        • 2011-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 2011-08-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多