.NET简单聊天服务器示例

时间:2012-05-14 09:35:11

标签: c# sockets

我正在为.Net程序员寻找简单的一步一步的沟通教程。在一些Google查询之后,我在net-informations.com找到了“CSharp Communications”代码集。只要我到达“How to C# Chat Server”示例,它看起来就很不错了。

作者建议使用HashTable容器的多线程服务器将所有连接保留在服务器端的共享内存中。根据MSDN文档TcpClientNetworkStream用于广播消息的类不是线程安全的,而该示例使用来自多个服务器线程的类。

我的问题是:

  1. 你能证实这个例子是错的吗?
  2. 应该怎么做,是否足以锁定广播方法(将其标记为关键部分)?
  3. 你能推荐一些socket通信教程(.Net首选)吗?

2 个答案:

答案 0 :(得分:5)

它不像7年前我写的那样完美,但它覆盖并且会让你对TCP通信领域有很好的理解:

Generic TCP/IP Client Server

答案 1 :(得分:1)

  

根据MSDN文档,用于广播消息的TcpClient和NetworkStream类不是线程安全的,而该示例在多个服务器线程中使用它们。

这是正确的;但它是关于并发访问。如果每个线程依次使用该实例(例如,使用锁来控制访问),则可以使用

换句话说:不是线程安全并不意味着绑定到单个线程。