C# Socket网络编程实例

2019-12-26 12:09:08王振洲

                getdata.Start(socketSend);  
            }  
        }  
        Dictionary<string, Socket> dic = new Dictionary<string, Socket>();  
        /// <summary>  
        /// 不停的接收客户端发送过来的消息  
        /// </summary>  
        /// <param name="o"></param>  
        void GetData(object o)  
        {  
            while (true)  
            {  
                Socket socketSend = o as Socket;  
                //将客户端发过来的数据先放到一个字节数组里面去  
                byte[] buffer = new byte[1024 * 1024 * 2]; //创建一个字节数组,字节数组的长度为2M  
                //实际接收到的有效字节数; (利用Receive方法接收客户端传过来的数据,然后把数据保存到buffer字节数组中,返回一个接收到的数据的长度)  
                int r = socketSend.Receive(buffer);  
                if (r == 0) //如果接收到的有效字节数为0 说明客户端已经关闭了。这时候就跳出循环了。  
                {  
                    //只有客户端给用户发消息,不可能是发0个长度的字节。即便发空消息,空消息也是有过个长度的。所有接收到的有效字节长度为0就代表客户端已经关闭了  
                    break;  
                }