public void MonitorClient(SocketDescribe socketClient) { var socket = socketClient.SocketClient; var bs = new byte[1024]; int length = 0; bool isRec = true; while (isRec) { try { length = socket.Receive(bs); if (Receive != null && length > 0) { socketClient.Receive = bs.Take(length).ToArray(); Receive(socketClient); } } catch { list.Remove(socketClient); isRec = false; if (Close != null) { Close(socketClient); } } } }
void init_Receive(SocketDescribe obj) { var model = obj.ReceiveString.Deserialize <WebModel>(); switch (model.Type) { case ModelType.Code: break; case ModelType.Cmd: break; case ModelType.Message: break; } }
public async void Monitor(Socket socket) { await Task.Run(() => { while (true) { SocketDescribe socketClient = SocketDescribe.GetSocketDescribe(socket.Accept()); list.Add(socketClient); if (Accept != null) { Accept(socketClient); } Thread thread = new Thread(() => { MonitorClient(socketClient); }); thread.Start(); } }); }
void init_Accept(SocketDescribe obj) { }
void init_Close(SocketDescribe obj) { }