public void WeaveExecuteTokenoutMethod(string _token) { ////移出onlinetoken int count = weaveOnline.Count; WeaveOnLine[] ols = new WeaveOnLine[count]; weaveOnline.CopyTo(0, ols, 0, count); foreach (WeaveOnLine onlinesession in ols) { if (onlinesession.Token == _token)//temp[1]) { foreach (WeaveTCPCommandItem cmdItem in weaveTCPCommandItems) { try { cmdItem.WeaveTcpCmd.Tokenout(onlinesession); } catch (Exception ex) { WeaveLogEvent?.Invoke("Tokenout", ex.Message); } } weaveOnline.Remove(onlinesession); return; } } }
public void WeaveExecuteRuncommandMethod_Tokenout_RemoveWeaveOnline(Socket _soc) { try { int count = weaveOnline.Count; WeaveOnLine[] ols = new WeaveOnLine[count]; weaveOnline.CopyTo(0, ols, 0, count); foreach (WeaveOnLine ol in ols) { if (ol.Socket.Equals(_soc)) { foreach (WeaveTCPCommandItem weaveTCPCommandItem in weaveTCPCommandItems) { try { WeaveExecuteRuncommandMethod(0xff, "out|" + ol.Token, ol.Socket); weaveTCPCommandItem.WeaveTcpCmd.Tokenout(ol); } catch (Exception ex) { if (WeaveLogEvent != null) { WeaveLogEvent("Tokenout", ex.Message); } } } weaveOnline.Remove(ol); return; } } } catch { } }
private void OnWeaveUpdateSocket(WeaveOnLine weaveOnLine) { SetServerReceiveText("Socket连接--触发了一次(OnWeaveUpdateSocket)" + Environment.NewLine); //有 Sokcet客户端连接到服务器的时候,暂未 账号,密码认证状态 AddListBoxItemAction(connectedSocketItemList, CopyWeaveOnLineToMyListBoxItem(weaveOnLine)); }
private void OnWeaveReceiveSocketMessage(byte command, string data, WeaveOnLine _socket) { WeaveSession ws = Newtonsoft.Json.JsonConvert.DeserializeObject <WeaveSession>(data); SetServerReceiveText("Socket发来数据--触发了一次(OnWeaveReceiveSocketMessage)" + Environment.NewLine); SetServerReceiveText("收到的数据为: " + ws.Root + Environment.NewLine); }
public void CallWeaveServerDeleteSocketCallBackEvent(Socket _soc) { WeaveOnLine online = weaveOnline.Find(s => s.Socket == _soc); if (online != null) { WeaveServerDeleteSocketCallBackEvent(online); } }
private void OnWeaveDeleteSocket(WeaveOnLine weaveOnLine) { SetServerReceiveText("Socket断开--退出事件--触发了一次(OnWeaveDeleteSocket)" + Environment.NewLine); RemoveListBoxItemAction(connectedSocketItemList, CopyWeaveOnLineToMyListBoxItem(weaveOnLine)); MyListBoxItem oneItem = loginedUserList.Find(item => item.Ip == weaveOnLine.Socket.RemoteEndPoint.ToString()); RemoveListBoxItemAction(loginedUserList, oneItem); }
void P2ServerDeleteSocketHander(System.Net.Sockets.Socket soc) { try { int count = CmdWorkItems.Count; CmdWorkItem[] cilist = new CmdWorkItem[count]; CmdWorkItems.CopyTo(0, cilist, 0, count); foreach (CmdWorkItem CI in cilist) { try { CI.WeaveTcpCmd.WeaveDeleteSocketEvent(soc); } catch (Exception ex) { if (WeaveLogEvent != null) { WeaveLogEvent("EventDeleteConnSoc", ex.Message); } } } } catch { } try { int count = weaveOnline.Count; WeaveOnLine[] ols = new WeaveOnLine[count]; weaveOnline.CopyTo(0, ols, 0, count); foreach (WeaveOnLine ol in ols) { if (ol.Socket.Equals(soc)) { foreach (CmdWorkItem CI in CmdWorkItems) { try { WeaveExcCmdNoCheckCmdName(0xff, "out|" + ol.Token, ol.Socket); CI.WeaveTcpCmd.Tokenout(ol); } catch (Exception ex) { if (WeaveLogEvent != null) { WeaveLogEvent("Tokenout", ex.Message); } } } weaveOnline.Remove(ol); return; } } } catch { } }
public WeaveOnLine CreatWeaveOnLine(string _token, Socket _socket) { WeaveOnLine ol = new WeaveOnLine() { Name = DateTime.Now.ToString("yyyyMMddHHmmssfff"), Obj = DateTime.Now.ToString("yyyyMMddHHmmssfff"), Socket = _socket, Token = _token }; return(ol); }
public MyListBoxItem CopyWeaveOnLineToMyListBoxItem(WeaveOnLine one) { MyListBoxItem item = new MyListBoxItem() { UIName_Id = one.Socket.RemoteEndPoint.ToString(), ShowMsg = "UserIP:" + one.Socket.RemoteEndPoint.ToString() + " -Token:" + one.Token, UserName = "******" + one.Socket.RemoteEndPoint.ToString(), Ip = one.Socket.RemoteEndPoint.ToString() }; return(item); }
public void Check_ReceiveMessageCallBackEvent(byte command, string data, Socket _socket) { if (CheckIsOnLinePlayerMessage(_socket)) { UnityPlayerOnClient player = unityPlayerOnClientList.Find(u => u.Socket == _socket); WeaveServerReceiveOnLineUnityPlayerMessageCallBackEvent(command, data, player); } else { WeaveOnLine onLine = weaveOnline.Find(w => w.Socket == _socket); WeaveServerReceiveSocketMessageCallBackEvent(command, data, onLine); } }
void P2ServerUpdateSocketHander(System.Net.Sockets.Socket soc) { CallWeaveServerUpdateSocketCallBackEvent(soc); CallWeaveTCPCommandClassUpdateSocketEvent(soc); WeaveTcpToken token = TcpToken; { if (token.IsToken) { //生成一个token,后缀带随机数 string Token = DateTime.Now.ToString("yyyyMMddHHmmssfff") + new Random().Next(1000, 9999);// EncryptDES(clientipe.Address.ToString() + "|" + DateTime.Now.ToString(), "lllssscc"); if (token.P2Server.Port == ((System.Net.IPEndPoint)soc.LocalEndPoint).Port) { //向客户端发送生成的token bool sendok = false; if (token.PortType == WeavePortTypeEnum.Bytes) { sendok = token.P2Server.Send(soc, 0xff, token.BytesDataparsing.Get_ByteBystring("token|" + Token + "")); } else { sendok = token.P2Server.Send(soc, 0xff, "token|" + Token + ""); } #region if(sendok) 如果发送token成功 if (sendok) { WeaveOnLine onLine = CreatWeaveOnLine(Token, soc); AddWeaveOnLine(onLine); ForeachWeaveExecuteRuncommandMethod(onLine); return; } #endregion } } else { WeaveOnLine online = CreatWeaveOnLine(soc); weaveOnline.Add(online); } } }
public UnityPlayerOnClient ConvertWeaveOnlineToUnityPlayerOnClient(WeaveOnLine wonline) { UnityPlayerOnClient uplayer = new UnityPlayerOnClient() { Obj = wonline.Obj, Socket = wonline.Socket, Token = wonline.Token, Name = wonline.Name }; return(uplayer); }
public void CallWeaveServerUpdateSocketCallBackEvent(Socket _soc) { WeaveOnLine online = weaveOnline.Find(s => s.Socket == _soc); if (online == null) { WeaveOnLine temponline = CreatWeaveOnLine(_soc); WeaveServerUpdateSocketCallBackEvent(temponline); } else { WeaveServerUpdateSocketCallBackEvent(online); } }
public void AddWeaveOnLine(WeaveOnLine item) { WeaveOnLine hasOnline = weaveOnline.Find(w => w.Name == item.Name); { if (hasOnline != null) { weaveOnline.Remove(hasOnline); //添加修改参数后的WeaveOnLine weaveOnline.Add(item); } else { weaveOnline.Add(item); } } }
private void OnUnityPlayerLoginOK(string _u, Socket _socket) { WeaveOnLine onLineSocket = weaveOnline.Find(w => w.Socket == _socket); // throw new NotImplementedException(); UnityPlayerOnClient gamer = new UnityPlayerOnClient() { UserName = _u, isLogin = true, Name = onLineSocket.Name, Obj = onLineSocket.Obj, Socket = _socket, Token = onLineSocket.Token }; WeaveServerGetUnityPlayerOnLineCallBackEvent(gamer); }
public void ForeachWeaveExecuteRuncommandMethod(WeaveOnLine onLine) { foreach (WeaveTCPCommandItem cmdItem in weaveTCPCommandItems) { try { WeaveExecuteRuncommandMethod(0xff, "in|" + onLine.Token, onLine.Socket); cmdItem.WeaveTcpCmd.TokenIn(onLine); } catch (Exception ex) { if (WeaveLogEvent != null) { WeaveLogEvent("Tokenin", ex.Message); } } } }
public void WeaveAddOnLineTokenIn(string _s, Socket soc) { WeaveOnLine ol = new WeaveOnLine(); ol.Token = _s; ol.Socket = soc; weaveOnline.Add(ol); foreach (WeaveTCPCommandItem weaveTCPCommandItem in weaveTCPCommandItems) { try { weaveTCPCommandItem.WeaveTcpCmd.TokenIn(ol); } catch (Exception ex) { WeaveLogEvent?.Invoke("Tokenin", ex.Message); } } }
public bool CheckIsOnLinePlayerMessage(Socket _socket) { WeaveOnLine onLineSocket = weaveOnline.Find(w => w.Socket == _socket); if (unityPlayerOnClientList.Count == 0) { return(false); } else { UnityPlayerOnClient player = unityPlayerOnClientList.Find(u => u.Name == onLineSocket.Name); if (player != null) { return(true); } else { return(false); } } }
private void SendMsg_button_Click(object sender, RoutedEventArgs e) { string serverMsg = InputSendMessage_textBox.Text; int unityGamecount = weaveTCPcloud.unityPlayerOnClientList.Count; if (string.IsNullOrEmpty(serverMsg) || weaveTCPcloud.weaveOnline.Count == 0) { return; } WeaveOnLine[] _allWeaveOnLine = new WeaveOnLine[weaveTCPcloud.weaveOnline.Count]; weaveTCPcloud.weaveOnline.CopyTo(_allWeaveOnLine); foreach (WeaveOnLine oneWeaveOnLine in _allWeaveOnLine) { weaveTCPcloud.P2Server.Send(oneWeaveOnLine.Socket, 0x01, "服务器主动给所有客户端发消息了: " + serverMsg); } // MessageBox.Show("客户端在线数量:"+ _allWeaveOnLine.Length); }
public void RestartWeaveOnLineSocket(string _s, Socket _soc) { int count = weaveOnline.Count; WeaveOnLine[] ols = new WeaveOnLine[count]; weaveOnline.CopyTo(0, ols, 0, count); string IPport = ((System.Net.IPEndPoint)_soc.RemoteEndPoint).Address.ToString() + ":" + _s;// temp[1]; foreach (WeaveOnLine ol in ols) { try { if (ol.Socket != null) { String IP = ((System.Net.IPEndPoint)ol.Socket.RemoteEndPoint).Address.ToString() + ":" + ((System.Net.IPEndPoint)ol.Socket.RemoteEndPoint).Port; if (IP == IPport) { ol.Socket = _soc; } } } catch { } } }
void P2ServerReceiveHander(byte command, string data, System.Net.Sockets.Socket soc) { try { if (command == 0xff) { WeaveExcCmdNoCheckCmdName(command, data, soc); try { string[] temp = data.Split('|'); if (temp[0] == "in") { //加入onlinetoken WeaveOnLine ol = new WeaveOnLine(); ol.Token = temp[1]; ol.Socket = soc; weaveOnline.Add(ol); foreach (CmdWorkItem CI in CmdWorkItems) { try { CI.WeaveTcpCmd.TokenIn(ol); } catch (Exception ex) { WeaveLogEvent?.Invoke("Tokenin", ex.Message); } } return; } else if (temp[0] == "Restart") { int count = weaveOnline.Count; WeaveOnLine[] ols = new WeaveOnLine[count]; weaveOnline.CopyTo(0, ols, 0, count); string IPport = ((System.Net.IPEndPoint)soc.RemoteEndPoint).Address.ToString() + ":" + temp[1]; foreach (WeaveOnLine ol in ols) { try { if (ol.Socket != null) { String IP = ((System.Net.IPEndPoint)ol.Socket.RemoteEndPoint).Address.ToString() + ":" + ((System.Net.IPEndPoint)ol.Socket.RemoteEndPoint).Port; if (IP == IPport) { ol.Socket = soc; } } } catch { } } } else if (temp[0] == "out") { ////移出onlinetoken int count = weaveOnline.Count; WeaveOnLine[] ols = new WeaveOnLine[count]; weaveOnline.CopyTo(0, ols, 0, count); foreach (WeaveOnLine onlinesession in ols) { if (onlinesession.Token == temp[1]) { foreach (CmdWorkItem cmdItem in CmdWorkItems) { try { cmdItem.WeaveTcpCmd.Tokenout(onlinesession); } catch (Exception ex) { WeaveLogEvent?.Invoke("Tokenout", ex.Message); } } weaveOnline.Remove(onlinesession); return; } } } } catch { } return; } else { WeaveExcCmd(command, data, soc); } } catch { return; } //System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(exec)); }
void P2ServerUpdateSocketHander(System.Net.Sockets.Socket soc) { try { int count = CmdWorkItems.Count; CmdWorkItem[] cilist = new CmdWorkItem[count]; CmdWorkItems.CopyTo(0, cilist, 0, count); foreach (CmdWorkItem CI in cilist) { try { CI.WeaveTcpCmd.WeaveUpdateSocketEvent(soc); } catch (Exception ex) { if (WeaveLogEvent != null) { WeaveLogEvent("EventUpdataConnSoc", ex.Message); } } } } catch { } foreach (WeaveTcpToken token in TcpTokenList) { string Token = DateTime.Now.ToString("yyyyMMddHHmmssfff") + new Random().Next(1000, 9999);// EncryptDES(clientipe.Address.ToString() + "|" + DateTime.Now.ToString(), "lllssscc"); if (token.P2Server.Port == ((System.Net.IPEndPoint)soc.LocalEndPoint).Port) { bool sendok = false; if (token.IsToken) { if (token.PortType == WeavePortTypeEnum.Bytes) { sendok = token.P2Server.Send(soc, 0xff, token.BytesDataparsing.Get_ByteBystring("token|" + Token + "")); } else { sendok = token.P2Server.Send(soc, 0xff, "token|" + Token + ""); } } else { sendok = true; } if (sendok) { WeaveOnLine ol = new WeaveOnLine(); ol.Token = Token; ol.Socket = soc; weaveOnline.Add(ol); foreach (CmdWorkItem cmdItem in CmdWorkItems) { try { WeaveExcCmdNoCheckCmdName(0xff, "in|" + ol.Token, ol.Socket); cmdItem.WeaveTcpCmd.TokenIn(ol); } catch (Exception ex) { if (WeaveLogEvent != null) { WeaveLogEvent("Tokenin", ex.Message); } } } return; } } } }
public void login(Socket soc, WeaveSession _0x01) { WeaveOnLine ol = GetOnLineByToken(_0x01.Token); ol.Name = "客户"; }