private void OnReceiveCompleted(object sender, SocketAsyncEventArgs e) { if (e.SocketError == SocketError.OperationAborted) { return; } Socket socket = sender as Socket; if (e.SocketError == SocketError.Success && e.BytesTransferred > 0) { string ipAdress = socket.RemoteEndPoint.ToString(); int lengthBuffer = e.BytesTransferred; byte[] receiveBuffer = e.Buffer; byte[] buffer = new byte[lengthBuffer]; Buffer.BlockCopy(receiveBuffer, 0, buffer, 0, lengthBuffer); string msg = Encoding.Default.GetString(buffer); //Console.WriteLine("Client : receive message[ {0} ],from Server[ {1} ]", msg, ipAdress); //char[] c = "end".ToCharArray(); //lm.newReceiveData(msg); if (msg.Contains("addin")) { if (!temp.Equals("")) { msg = temp + msg; } string[] message = msg.Split(';'); //if (message.Length > 10) { for (int i = 0; i < message.Length; i++) { if (message[i].Split(',').Length > 10) { lm.newReceiveData(message[i] + ";end"); temp = ""; } else { temp = message[i]; //Console.WriteLine(message[i]); } } } } else { lm.newReceiveData(msg); } socket.ReceiveAsync(e); } else if (e.SocketError == SocketError.ConnectionReset || e.BytesTransferred == 0) { //Console.WriteLine("Client: 服务器断开连接 "); lm.Disconnect(); //DisConnect(); } else { return; } }