日期:2014-05-17  浏览次数:20824 次

多客户端与一个服务器端的多线程问题
大概有100个客户端,一个服务器,采用TCP连接,下面这样写一个高手说不对,说下面写的不叫多线程,实现不了100个客户端与服务器通信的。请教,该怎么改进?

以下代码是服务器端程序。客户端只发送数据。
我测试了2个客户端与这个服务器端通信,服务器端界面上能收到不同客户端发送过来的数据啊,但是没有环境测试多个客户端与服务器端通信。


        private void ServerForm_Load(object sender, EventArgs e)
        {
            //测试线程
            Thread SoceketTestThread = new Thread(new ThreadStart(StartListening));
            SoceketTestThread.Start();
                           
            //实例化
            Set_Text = new set_Text(set_ListViewCarFlowText); 
        }

        /// <summary>
        /// 开启端口监听线程
        /// </summary>
        private void StartListening()
        {
            listener = new TcpListener(IPAddress.Parse(m_serverIP), int.Parse(m_serverPort));
            listener.Start();
            while (StartListeningFlg)
            {
                try
                {
                    //一旦在该端口号监听到信息,则启动一个新的线程
                    Socket s = listener.AcceptSocket();
                    //判断是否处在连接状态中
                    if (s.Connected == true)
                    {
                        clientsocket = s;
                        clientservice = new Thread(new ThreadStart(ServiceClient));
                        clientservice.Start();
                    }
                }
               &nbs