当前位置: 代码迷 >> C# >> C# 关于Socket的有关问题
  详细解决方案

C# 关于Socket的有关问题

热度:87   发布时间:2016-05-05 02:45:55.0
C# 关于Socket的问题
本帖最后由 Switch_Man 于 2015-09-27 22:56:48 编辑
我想限制客户端的连接数,我设置了一个变量用来控制连接数,当到了连接数就不允许客户端继续连接,具体实现大概这样:
while (true)
            {
                Socket so = sock.Accept();
              
                if (i <= 3)
                {
                    list.Add(so);
                    i += 1;            
                    Console.WriteLine("当前连接人数:" + i);
                    //接受客户端的名字并保存
                   。。。。。。。(省略一些代码)
                }
                else
                {
                    so.Send(Encoding.Default.GetBytes("服务器已达最大人数,无法连接"));
                    so.Close();
                }
            }

我将接受的socket存到一个List里面,但是我将客户端连接到3个的时候,else里面的代码也不执行,为什么?

还有一个问题是,如果其中一个客户端断开了连接,怎么才能不影响其他客户端的正常操作,比如我现在其中一个客户端断开了连接,但是我在其他客户端发送信息时服务端会报错,错误提示是cannot access a disposed object是不是我服务端缺少了什么代码来处理这个情况?
------解决思路----------------------
因为你看到控制台显示
当前连接人数:4
所以以为出问题了?搞清楚你自己写的逻辑吧
  相关解决方案