public void ReceiveConnections() { string clientName = string.Empty; byte[] bytes = new byte[1024]; while (true) { Console.WriteLine("Waiting for connection..."); var handler = _socket.Accept(); _clientSockets.Add(handler); IPAddress clientAddress = handler.RemoteEndPoint(); data = null; while (true) { int byteRec = handler.Receive(bytes); data += Encoding.ASCII.GetString(bytes, 0, byteRec); clientName = data.Replace("connect: ", ""); ClientState clientState = new ClientState() { Name = clientName }; _clients.Add(clientAddress, clientState); if (data.Length > 0) { break; } } foreach (var user in bytes) { byte[] msg = Encoding.ASCII.GetBytes(user.ToString()); handler.Send(msg); } } }
public void StartServer(IPAddress ipAddress) { try { IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 8300); serverSocket.Bind(localEndPoint); serverSocket.Listen(10); Console.WriteLine("Waiting for clients to connect..."); while (true) { ISocketProxy clientSocket = serverSocket.Accept(); Individual normalPerson = new NormalPerson(new Person(clientSocket)); Thread myThread = new Thread(HandleLogin); myThread.Start(normalPerson); } } catch (Exception ex) { Console.WriteLine(ex); } }