private void M_server_ClientState(HCSocketServer.Common.Enmu.HCClientStateEnmu state, HCClient client) { switch (state) { case HCSocketServer.Common.Enmu.HCClientStateEnmu.Connected: m_clientlist.Dispatcher.Invoke(new Action(() => { m_clientlistsource.Add(new ClientData(clientid, client.Socket.RemoteEndPoint.ToString(), client.ClientID)); clientid++; })); break; case HCSocketServer.Common.Enmu.HCClientStateEnmu.Failed: break; case HCSocketServer.Common.Enmu.HCClientStateEnmu.Disconnected: m_clientlist.Dispatcher.Invoke(new Action(() => { foreach (ClientData item in m_clientlistsource) { if (item.clientid.Equals(client.ClientID)) { m_clientlistsource.Remove(item); clientid = 0; break; } } foreach (ClientData item in m_clientlistsource) { item.id = clientid; clientid++; } })); break; default: break; } }
public HCMessage(HCClient client, byte[] data) { HCClient = client; ClientID = client.ClientID; Data = data; }