/// <summary> /// 客户端消息序列化(注册/登录) /// </summary> /// <param name="_receiver">接受者</param> /// <param name="_type">类型</param> /// <param name="_username">用户名</param> /// <param name="_psw">密码</param> /// <param name="_mail">邮箱</param> /// <returns></returns> public static string client_account_serialization(string _receiver, string _type, string _username, string _psw, string _mail, string _key) { clientJson one = new clientJson() { receiver = _receiver, type = _type, username = _username, psw = _psw, mail = _mail, key = _key }; return(JsonConvert.SerializeObject(one)); }
/// <summary> /// 客户端消息序列化(发送消息/查找好友) /// </summary> /// <param name="_receiver">接受者</param> /// <param name="_type">类型</param> /// <param name="_msg">消息</param> /// <param name="_key">用户的凭证,退出即销毁</param> /// <returns></returns> public static string client_msg_serialization(string _receiver, string _type, string _username, string _msg, string _key) { clientJson one = new clientJson() { receiver = _receiver, type = _type, username = _username, msg = _msg, key = _key }; return(JsonConvert.SerializeObject(one)); }
private void Receive(object obj) { Socket client = obj as Socket; IPEndPoint point = client.RemoteEndPoint as IPEndPoint; clientJson userMsgJSON = new clientJson(); try { byte[] _msg = new byte[1024]; int msgLen = client.Receive(_msg); if (msgLen == 0) { return; } clientMsg = JsonHelper.server_local_interactive_serialization(point.ToString(), Encoding.UTF8.GetString(_msg, 0, msgLen)); var IPPortJSON = JsonHelper.server_local_interactive_deserialization(clientMsg); var IPport = IPPortJSON.IPPort; userMsgJSON = JsonHelper.client_deserialization(IPPortJSON.msg); switch (userMsgJSON.type) { case "login": var msg = loginClass.loginCheck(userMsgJSON.username, userMsgJSON.psw, IPport); Send(JsonHelper.server_local_interactive_serialization(IPport, msg)); connection_status = JsonHelper.server_local_interactive_serialization("login", point.ToString(), "[" + userMsgJSON.username + "]", "尝试登录"); break; case "msg": setMsgClass.setMsg(userMsgJSON.username, userMsgJSON.receiver, userMsgJSON.msg, userMsgJSON.key); break; case "searchfriends": Send(searchfriendsClass.searchfriends(userMsgJSON.username, userMsgJSON.msg, userMsgJSON.key, IPport)); break; case "addfriends": Send(addfriendsClass.addfriends(IPport, userMsgJSON.username, userMsgJSON.msg, userMsgJSON.key)); break; case "gethistory": Send(gethistoryClass.gethistory(IPport, userMsgJSON.receiver, userMsgJSON.username, userMsgJSON.key)); break; case "removefriends": Send(removefriendsClass.removefriends(IPport, userMsgJSON.receiver, userMsgJSON.username, userMsgJSON.key)); break; default: break; } clientMsg = ""; Receive(client); } catch (Exception) { foreach (var item in sockets) { if (item.RemoteEndPoint.ToString() == point.ToString()) { login_information.userLogin(null, point.ToString(), "resign"); connection_status = JsonHelper.server_local_interactive_serialization("discon", point.ToString(), userMsgJSON.username, "已断开"); } } } }