VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 698|回复: 6

Socket服务端最大并发连接数受限问题

[复制链接]

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-6 05:30:01 | 显示全部楼层 |阅读模式
做服务端
主要代码如下:
        public SocketServer(EndPoint endPoint)
        {
            socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Bind(endPoint);
        }

        public void Start()
        {
            connectDone = new ManualResetEvent(false);
            connectThread = new Thread(new ThreadStart(ConnectService));
            connectThread.IsBackground = true;
            socket.Listen(1024);
            connectThread.Start();
        }

        protected void ConnectService()
        {
            while (true)
            {
                connectDone.Reset();
                socket.BeginAccept(new AsyncCallback(ConnectInit), socket);
                connectDone.WaitOne();
            }
        }

        protected void ConnectInit(IAsyncResult ar)
        {
            Socket clientSocket = ((Socket) ar.AsyncState).EndAccept(ar);
            connectDone.Set();
            if (OnConnect != null)
            {
                 NetworkClient client = new NetworkClient(clientSocket);
                 OnConnect(client);
            }
        }
当客户端有3个以上的用户同时连接时,3个以后的连接都连接不上。望大家帮我看看。
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-1 18:15:01 | 显示全部楼层
客户段连续创建3个以上的连接时就有问题,如果没创建一个连接Sleep(1000)就没有问题,Sleep的时间不能太短,否则一样不能建立连接。
回复

使用道具 举报

0

主题

7

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-6-6 14:45:01 | 显示全部楼层
用异步
回复

使用道具 举报

0

主题

7

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-6-6 16:00:02 | 显示全部楼层
多线程
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-10 02:15:01 | 显示全部楼层
全部是异步处理方式的,包括客户端的连接及发送信息,读取信息等都是异步的,我通过端口察看器发现已经建立连接了,可就是3个以上的连接就是无法通讯,主要是建立连接时的并发量不能太猛,必须隔1秒建一个才可以
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-10 11:30:01 | 显示全部楼层
快速建立20个连接后,有时候只有2个能有,有时候只有3个能用,如果隔一秒或以上时间后再建一个连接,就没有这个问题。大家帮我看看,急晕了。
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-2 12:00:01 | 显示全部楼层
不至于哟,我的程序listen(200),我自己测试了20个客户端同时连。每个用单独的线程处理。不过没有测试大数据量时的状况。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表