private void Rec(SocketHelper.Sockets sks) { if (sks.ex != null) { //在这里判断ErrorCode 可以自由扩展 switch (sks.ErrorCode) { case SocketHelper.Sockets.ErrorCodes.objectNull: break; case SocketHelper.Sockets.ErrorCodes.ConnectError: break; case SocketHelper.Sockets.ErrorCodes.ConnectSuccess: DgLog("连接成功..."); IsConnect = true; info.Order = SocketOrder.Login; client.SendData(Serializer(info)); break; case SocketHelper.Sockets.ErrorCodes.TrySendData: break; default: break; } if (sks.ErrorCode != SocketHelper.Sockets.ErrorCodes.ConnectSuccess) { DgLog(string.Format("{0}", sks.ex)); IsConnect = false; } } else { byte[] buffer = new byte[sks.Offset]; Array.Copy(sks.RecBuffer, buffer, sks.Offset); string str = Encoding.UTF8.GetString(buffer); if (str == "ServerOff") { DgLog("服务端主动关闭,即将尝试重新连接..."); IsConnect = false; } else { DgMessage(string.Format("服务端{0}发来消息:{1}", sks.Ip, str)); //txtThis.Text += "\r\n"; //txtThis.Text += string.Format("服务端{0}发来消息:{1}", sks.Ip, str); } } }
private static void Rec(SocketHelper.Sockets sks) { if (sks.ex != null) { //string.Format("客户端出现异常:{0}.!", sks.ex.Message); } else { if (sks.NewClientFlag) { //string.Format("新客户端:{0}连接成功.!", sks.Ip) } else { byte[] buffer = new byte[sks.Offset]; Array.Copy(sks.RecBuffer, buffer, sks.Offset); string str = string.Empty; if (sks.Offset == 0) { str = "客户端下线"; } else { str = Encoding.UTF8.GetString(buffer); if (string.IsNullOrEmpty(str)) { server.SendToClient(sks.Ip, ExcuteMessage.Error("传入参数为空!")); return; } PostSourceEntity entity = str.ToJsonObject <PostSourceEntity>(); str = JZ.Server.PublicServer.CallFunction(entity); server.SendToClient(sks.Ip, str); } } } }
private void Rec(SocketHelper.Sockets sks) { IPEndPoint _ip = new IPEndPoint(IPAddress.Any, 60000); if (sks.ex != null) { //在此处理异常信息 WriteLog(string.Format("客户端出现异常:{0}.!", sks.ex.Message)); //ServerInfo _info = new ServerInfo() { Ip = sks.Ip }; ClientRemove(sks.Ip); //labClientCount.Text = (cmbClient.Items.Count).ToString(); } else { if (sks.NewClientFlag) { WriteLog(string.Format("新客户端:{0}连接成功.!", sks.Ip)); //(sks.Ip.ToString()); //labClientCount.Text = (cmbClient.Items.Count).ToString(); } else { byte[] buffer = new byte[sks.Offset]; Array.Copy(sks.RecBuffer, buffer, sks.Offset); string str = string.Empty; if (sks.Offset == 0) { str = sks.Ip.ToString() + " 客户端下线"; WriteLog(str); ClientRemove(sks.Ip); //labClientCount.Text = (cmbClient.Items.Count).ToString(); } else { try { str = Encoding.UTF8.GetString(buffer); SocketInfo _info = new SocketInfo(); _info = Derializer(str); if (_info.Order == SocketOrder.Login) { if (!CheckClientIsHaving(_info.ClientName, out _ip)) { ClientAdd(new ServerInfo() { AimName = _info.AimName, ClientName = _info.ClientName, Ip = sks.Ip }); } else { SendToClient(sks.Ip, "服务器存在相同名称客户端,请重命名."); } } else { if (CheckClientIsHaving(_info.AimName, out _ip)) { WriteLog(string.Format("{0}向{1}发送:{2}", _info.ClientName, _info.AimName, _info.DataInfo)); SendToClient(_ip, _info.DataInfo); } else { WriteLog("没找到目标服务器,转发失败,已反馈到源服务器"); SendToClient(sks.Ip, "发送失败,目标服务器可能已经离线.."); } } } catch (Exception ex) { throw; } } } } }
/// <summary> /// 处理推送过来的消息 /// </summary> /// <param name="rec"></param> private void Rec(SocketHelper.Sockets sks) { if (sks.ex != null) { //在这里判断ErrorCode 可以自由扩展 switch (sks.ErrorCode) { case SocketHelper.Sockets.ErrorCodes.objectNull: break; case SocketHelper.Sockets.ErrorCodes.ConnectError: break; case SocketHelper.Sockets.ErrorCodes.ConnectSuccess: break; case SocketHelper.Sockets.ErrorCodes.TrySendData: break; default: break; } MessageBox.Show(sks.ex.ToString()); } else { byte[] buffer = new byte[sks.Offset]; Array.Copy(sks.RecBuffer, buffer, sks.Offset); string str = Encoding.UTF8.GetString(buffer); if (str == "ServerOff") { MessageBox.Show("服务端主动关闭"); } else { ExcuteResultMsg msg = str.ToJsonObject <ExcuteResultMsg>(); if (blnUpdate) { blnUpdate = false; var lst = msg.Result.ToJsonObject <List <JZ.Models.Test> >(); if (lst != null && lst.Count > 0) { lst[0].Value = Guid.NewGuid().ToString(); client.SendData(CreateEditModel(lst[0])); } else { MessageBox.Show("没有查询到数据"); return; } } else { if (msg.Code == ResultCode.Success) { MessageBox.Show("成功\n\r" + str); } else { MessageBox.Show("失败:" + str); } } } } }