//未读消息接受 public static void Unread_Chat_Receive(unread_Object unread_obj, int idx) { try { //开始接收消息 if (unread_obj.flag) { unread_obj.unread_socket.BeginReceive(recv_bytes, 0, recv_bytes.Length, SocketFlags.None, new AsyncCallback(Unread_Chat_Receive_Callback), unread_obj); } } catch (Exception ex) { Console.WriteLine("异常信息:", ex.Message); } }
//回调函数 public static void Unread_Chat_Receive_Callback(IAsyncResult ar) { unread_Object unread_obj = (unread_Object)ar.AsyncState; if (unread_obj.flag) { int lengths = unread_obj.unread_socket.EndReceive(ar); string recv_str = null; recv_str = Encoding.UTF8.GetString(recv_bytes, 0, lengths); if (recv_str != null && recv_str.Split('.')[0] == "info") { unread_obj.unread_msg.Add(recv_str); unread_obj.msg_count++; if (unread_obj.msg_count == 1) { unread_obj.main_Window.add_to_list(recv_str); } } unread_obj.unread_socket.BeginReceive(recv_bytes, 0, recv_bytes.Length, SocketFlags.None, new AsyncCallback(Unread_Chat_Receive_Callback), unread_obj); } }