public void WaitForData(Socket sok) { try { MultiPacket pak = new MultiPacket(); pak.Socket = sok; //Console.WriteLine("Waiting for input."); sok.BeginReceive(pak.Buffer, 0, pak.Buffer.Length, SocketFlags.None, new AsyncCallback(OnDataReceived), pak); } catch { if (c_Server) { if (c_Names[sok] != null) { BroadcastSystem(c_Names[sok].ToString() + General.Local(291)); } c_Clients.Remove(sok); c_Names.Remove(sok); } else { BroadcastSystem(General.Local(290)); CloseSlave(); } } }
public void OnDataReceived(IAsyncResult asyn) { try { MultiPacket pak = (MultiPacket)asyn.AsyncState; byte[] buffer = new byte[1024]; int count = pak.Socket.Receive(buffer); char[] chars = new char[count]; System.Text.Encoding.ASCII.GetDecoder().GetChars(buffer, 0, count, chars, 0); string input = new System.String(chars).Trim(); //Console.WriteLine(pak.Socket + " " + input); if (c_Server) { if (input.ToLower().IndexOf("<") != 0) { c_Names[pak.Socket] = input; BroadcastSystem(input + General.Local(292)); } else { Broadcast(input); SendMaster(input); } } else { HandleInput(input); } WaitForData(pak.Socket); } catch { if (c_Server) { CloseMaster(); } else { CloseSlave(); } //Console.WriteLine(e.Message); //Console.WriteLine(e.StackTrace); } }
public void WaitForData(Socket sok) { try { MultiPacket pak = new MultiPacket(); pak.Socket = sok; //Console.WriteLine("Waiting for input."); sok.BeginReceive(pak.Buffer, 0, pak.Buffer.Length, SocketFlags.None, new AsyncCallback(OnDataReceived), pak); } catch (Exception /*e*/)// I HID e to stop warning message. { if (c_Server) { if(c_Names[sok] != null) BroadcastSystem(c_Names[sok].ToString() + General.Local(291)); c_Clients.Remove(sok); c_Names.Remove(sok); } else { BroadcastSystem(General.Local(290)); CloseSlave(); } } }