void IDataSender.FriendChatReq(Guid request_id, FriendChatsReq req) { Datagram datagram = new Datagram { DataType = DatagramType.Chat, MessageType = ChatDatagramDefine.FriendChatsReq, RequestID = request_id, Datas = req.ToByteArray() }; if (!Send(datagram)) { RunningDatas.InfoNotify("网络连接失败 请重启软件后重试"); } }
private void OnFriendChatsReq(Datagram datagram) { FriendChatsReq req = datagram.UnSerialData <FriendChatsReq>(); FriendChatsRes res = new FriendChatsRes(); ChatPackage[] chats = UserChatReader.ReadFriendChat(req.Sender, req.Friend, datagram.RequestID); byte[][] buffer; if (null != chats) { for (int i = 0; i < chats.Length; ++i) { res.Chat.Add(chats[i] as FriendChatPackage); } buffer = res.ToByteArrays(); } else { buffer = new byte[1][] { new byte[0] } }; datagram.DataType = DatagramType.Client; datagram.MessageType = ChatDatagramDefine.FriendChatsRes; for (int i = 0; i < buffer.Length; ++i) { datagram.Datas = buffer[i]; if (!Send(datagram.ToByteArray())) { Notify(IKXTServer.LogLevel.Error, "数据发送异常"); Close(); } } }