I created an server-client app in c#. I manage to send messages from client to server and read them, but i don't know how to send message back from server to client.
namespace TCPSockets {
public partial class Form1 : Form {
TcpClient client = null;
TcpListener listener = null;
IPAddress ip = null;
int port = 1337;
Thread thClient = null;
Thread thListener = null;
NetworkStream dataStream = null;
public Form1() {
InitializeComponent();
txt_ip.Text = "127.0.0.1";
txt_port.Text = "1234";
}
private void ListenForConnections() {
listener = new TcpListener(ip, port);
listener.Start();
while (true) {
try {
client = listener.AcceptTcpClient();
dataStream = client.GetStream();
byte[] message = new byte[1024];
dataStream.Read(message, 0, message.Length);
dataStream.Close();
string strMessage = Encoding.UTF8.GetString(message);
MessageBox.Show("Server: I got message: " + strMessage);
}
catch (Exception ex) {
thListener.Join();
}
}
}
private void start_server_Click(object sender, EventArgs e)
{
ip = IPAddress.Parse(txt_ip.Text);
port = Convert.ToInt32(txt_port.Text);
// nit => sicer vmesnik blokira, ko kličemo AcceptTcpClient()
thListener = new Thread(new ThreadStart(ListenForConnections));
thListener.IsBackground = true;
thListener.Start();
}
}
}
namespace TCPSockets {
public partial class Form1 : Form {
TcpClient client = null;
TcpListener listener = null;
IPAddress ip = null;
int port = 1337;
Thread thClient = null;
Thread thListener = null;
NetworkStream dataStream = null;
public Form1() {
InitializeComponent();
txt_ip.Text = "127.0.0.1";
txt_port.Text = "1234";
}
private void SendPacket(object pClient) {
string message = txt_message.Text;
try {
client = (TcpClient)pClient;
client.Connect(ip, port);
dataStream = client.GetStream();
byte[] strMessage = Encoding.UTF8.GetBytes(message);
dataStream.Write(strMessage, 0, strMessage.Length);
dataStream.Close();
client.Close();
}
catch (Exception ex) {
MessageBox.Show("Odjemalec: Pošiljanje ni bilo uspešno!");
}
}
private void send_to_server_Click(object sender, EventArgs e)
{
ip = IPAddress.Parse(txt_ip.Text);
port = Convert.ToInt32(txt_port.Text);
client = new TcpClient();
thClient = new Thread(new ParameterizedThreadStart(SendPacket));
thClient.IsBackground = true;
thClient.Start(client);
}
}
}
Does anyone know how to properly send message to client from server and read it in client?