private void Recieve() { Socket thisClient = clientSockets[clientSockets.Count() - 1]; bool connected = true; while (connected && !terminating) { try { Byte[] buffer = new Byte[64]; thisClient.Receive(buffer); string incomingMessage = Encoding.Default.GetString(buffer); incomingMessage = incomingMessage.Substring(0, incomingMessage.IndexOf("\0")); Logs_richTextBox.AppendText("Client: " + incomingMessage + "\n"); } catch { if (!terminating) { Logs_richTextBox.AppendText("Client has disconnected.\n"); } thisClient.Close(); clientSockets.Remove(thisClient); connected = false; } } }
private void Accept() { while (listening) { try { Socket clientSocket = serverSocket.Accept(); clientSockets.Add(clientSocket); Logs_richTextBox.AppendText("A client has connected.\n"); Thread recieveThread = new Thread(Recieve); recieveThread.Start(); } catch { if (terminating) { listening = false; } else { Logs_richTextBox.AppendText("The socket stopped working.\n"); } } } }
private void Message_button_Click(object sender, EventArgs e) { string message = Message_textBox.Text; if (message != "" && message.Length <= 64) { Byte[] buffer = Encoding.Default.GetBytes(message); foreach (Socket client in clientSockets) { try { client.Send(buffer); } catch { Logs_richTextBox.AppendText("Couldn't send the message.\n"); terminating = true; Message_textBox.Enabled = false; Message_button.Enabled = false; Port_textBox.Enabled = true; Port_Button.Enabled = true; serverSocket.Close(); } } } }
private void Port_Button_Click(object sender, EventArgs e) { int serverPort; if (Int32.TryParse(Port_textBox.Text, out serverPort)) { IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, serverPort); serverSocket.Bind(endPoint); serverSocket.Listen(3); Message_button.Enabled = true; Message_textBox.Enabled = true; Port_Button.Enabled = false; listening = true; Thread acceptThread = new Thread(Accept); acceptThread.Start(); Logs_richTextBox.AppendText("Listening to the port:" + serverPort + ".\n"); } else { Logs_richTextBox.AppendText("Couldn't connect to the port.\n"); } }