private void RecMsg(object socketReceiverPara) { Socket socketListener = socketReceiverPara as Socket; while (true) { //创建一个内存缓冲区 其大小为1024*1024字节 即1M byte[] arrRecMsg = new byte[1024 * 1024]; //将接收到的信息存入到内存缓冲区,并返回其字节数组的长度 int length = socketListener.Receive(arrRecMsg); if (length > 0) { //将机器接受到的字节数组转换为人可以读懂的字符串 string strRecMsg = Encoding.UTF8.GetString(arrRecMsg, 0, length); Dictionary <string, string> messageSet = new Dictionary <string, string>(CommonHandler.ResolveMessage(strRecMsg)); if (!Contact.chatKey.ContainsKey(messageSet["sender"])) { MessageBox.Show(messageSet["value"], messageSet["sender"] + "-" + messageSet["time"]); } else { Contact.chatKey[messageSet["sender"]].NewMessage(messageSet); } } else { break; } } socketListener.Close(); }