public void ReceiveData(object client) { try { TcpClient tcpClient = (TcpClient)client; NetworkStream networkStream = tcpClient.GetStream(); byte[] receivedByteData = new byte[1024]; int receivedDataSize; while ((receivedDataSize = networkStream.Read(receivedByteData, 0, receivedByteData.Length)) > 0 && connectedThreadSafe) { try { PrintReceivedData(Encoding.ASCII.GetString(receivedByteData, 0, receivedDataSize)); LogClientForm.Message(Encoding.ASCII.GetString(receivedByteData, 0, receivedDataSize)); } catch (Exception ex) { LogClientForm.Error(ex); } } networkStream.Flush(); networkStream.Close(); } catch (Exception ex) { LogClientForm.Error(ex); } }
public string ConnectDiconnect(IPAddress ip, int port, string name) { try { if (!this.Connected) { this.ip = ip; this.port = port; if (name != null || name != "") { this.name = name; } this.Connected = true; Client.Connect(ip, port); return("Conected to the server: " + ip + " , port: " + port); } else { this.Connected = false; //this.ReceiveDataThread.Abort(); this.Client.Client.Shutdown(SocketShutdown.Both); this.Client.Close(); return("Disonnected from the server..."); } } catch (Exception ex) { LogClientForm.Error(ex); return("Something went wrong: " + ex.ToString()); } }
private void btnServerConnect_Click(object sender, EventArgs e) { try { string connection; if (!clientConnector.Connected) // if not connected - Connect { connectedThreadSafe = !clientConnector.Connected; // !false = true clientConnector.Client = new TcpClient(); try { if (!string.IsNullOrEmpty(txtServerIP.Text) && !string.IsNullOrEmpty(txtServerPort.Text)) { IPAddress.TryParse(txtServerIP.Text, out ip); int.TryParse(txtServerPort.Text, out port); } } catch (Exception ex) { LogClientForm.Error(ex); } connection = clientConnector.ConnectDiconnect(ip, port, clientName); clientConnector.ReceiveDataThread = new Thread(new ParameterizedThreadStart(ReceiveData)); clientConnector.ReceiveDataThread.Start(clientConnector.Client); txtMessageSend.Focus(); btnMessageSend.Enabled = true; txtServerIP.Enabled = false; txtServerPort.Enabled = false; btnClientName.Enabled = false; btnServerConnect.Text = "Disconnect"; } else { connectedThreadSafe = !clientConnector.Connected; connection = clientConnector.ConnectDiconnect(); btnMessageSend.Enabled = false; txtServerIP.Enabled = true; txtServerPort.Enabled = true; txtClientName.Enabled = true; btnClientName.Enabled = true; btnServerConnect.Text = "Connect"; } txtMessageDisplay.AppendText(">>" + connection.ToString() + Environment.NewLine); } catch (Exception ex) { LogClientForm.Error(ex); } }
public string ConnectDiconnect() { try { this.Connected = false; this.Client.Client.Shutdown(SocketShutdown.Both); this.Client.Close(); return("Disonnected from the server..."); } catch (Exception ex) { LogClientForm.Error(ex); return("Something went wrong: " + ex.ToString()); } }
private void btnMessageSend_Click(object sender, EventArgs e) { try { if (clientConnector.Connected) { if (!string.IsNullOrEmpty(txtMessageSend.Text) || !string.IsNullOrWhiteSpace(txtMessageSend.Text)) { NetworkStream networkStream = clientConnector.Client.GetStream(); byte[] buffer = Encoding.ASCII.GetBytes(clientConnector.GetName() + ": " + txtMessageSend.Text); networkStream.Write(buffer, 0, buffer.Length); txtMessageSend.Clear(); } } } catch (Exception ex) { LogClientForm.Error(ex); } }