/// <summary> /// Sends a string message. /// </summary> /// <param name="message">Message.</param> public void SendMessage(string message) { if (udpClient.IsConnected) { byte[] msg = Encoding.UTF8.GetBytes(message); udpClient.SendMessage(msg); } }
private async void SendUserData(byte[] dest) { AppUser user = User.AccountsManager.Instance.CurrentUser; if (user != null) { await _client.SendMessage(0, Encoding.Unicode.GetBytes(user.Username), dest); if (user.UserAvatarSerialized != null) { await _client.SendMessage(1, user.UserAvatarSerialized, dest); } } }
private void button_login_Click(object sender, EventArgs e) { UDPClient udpClient = KevRegister.Get <UDPClient>(ClientItemsPrimaryKey.Socket_UDPClient, () => { udpClient = new UDPClient(); udpClient.ServerIPPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7788); udpClient.Start(); return(udpClient); }); KevSocketModel ksModel = new KevSocketModel() { DeviceId = KevRegister.Get(UDPPrimaryKey.Client_ThisDeviceId, -1), MessageId = IdGenerator.NextId(), MessageType = MessageType.Login, NetworkType = NetworkType.Request }; if (!udpClient.SendMessage(ksModel)) { MessageBox.Show("连接服务器失败,请稍后尝试"); } }
protected override void OnExiting(object sender, EventArgs args) { client.SendMessage(MessageType.LEAVE, "disconnected " + client.ClientID); base.OnExiting(sender, args); }
public int HandleResponseMessage(UDPModel uModel) { //判断数据 KevSocketModel <long> ksModel = JsonHelper.ParseFromJson <KevSocketModel <long> >(uModel.Body, uModel.Length); if (ksModel == null) { return(ResponseCode.NotFindKevSocketModel); } //处理相关的逻辑然后进行跳转 Dispatcher dispatcher = KevRegister.Get <Dispatcher>(ClientItemsPrimaryKey.Dispatcher_MainThread); MainForm mainForm = KevRegister.Get <MainForm>(ClientItemsPrimaryKey.Form_Main); if (ksModel.ResponseCode == ResponseCode.Success) { dispatcher.Invoke(() => { if (mainForm != null) { mainForm.Hide(); } //替换本机的Id KevRegister.Add <long>(UDPPrimaryKey.Client_ThisDeviceId, ksModel.Data); KevRegister.Get <HomeForm>(ClientItemsPrimaryKey.Form_Home, () => { return(new HomeForm()); }).Show(); }); //请求本机资料 KevSocketModel ksModel_requestSelfUserInfo = new KevSocketModel { DeviceId = KevRegister.Get <long>(UDPPrimaryKey.Client_ThisDeviceId, -1), MessageId = IdGenerator.NextId(), MessageType = MessageType.GetUserInfo, NetworkType = NetworkType.Request }; UDPClient udpClient = KevRegister.Get <UDPClient>(ClientItemsPrimaryKey.Socket_UDPClient); if (!udpClient.SendMessage(ksModel_requestSelfUserInfo)) { KevRegister.Get <HomeForm>(ClientItemsPrimaryKey.Form_Home).label_status.Text = "请求自己的资料失败"; } //获取已经登录的人 KevSocketModel ksModel_getFriendList = new KevSocketModel { DeviceId = KevRegister.Get <long>(UDPPrimaryKey.Client_ThisDeviceId, -1), MessageId = IdGenerator.NextId(), MessageType = MessageType.GetUserFriendList, NetworkType = NetworkType.Request }; udpClient.SendMessage(ksModel_getFriendList); } else { dispatcher.Invoke(() => { mainForm.ShowAPrompt(ResponseCode.GetDescription(ksModel.ResponseCode)); }); } return(ResponseCode.NoResponse); }