Нужно сделать tcp чат, есть сервер и несколько клиентов, сообщения отправляются на сервер и потом к клиенту. Проблема такая: сейчас все сообщение клиентов отправляются на сервер (смт. фото), как сделать отправку сообщений с сервера клиенту?
Server:
Код:
class Client
{
public TcpClient tcpClient;
public void loadClient()
{
StreamReader reader = new StreamReader(tcpClient.GetStream());
NetworkStream networkStream = tcpClient.GetStream();
string massage = reader.ReadLine();
string userName = massage;
Console.WriteLine("Welcome " + userName);
while (true)
{
try
{
massage = reader.ReadLine();
Console.WriteLine(userName + ": " + massage);
massage += "\n";
byte[] data = Encoding.UTF8.GetBytes(massage);
networkStream.Write(data, 0, data.Length);
}
catch
{
break;
}
}
tcpClient.Close();
}
}
class Program
{
static void Main(string[] args)
{
IPAddress iPAddress = IPAddress.Parse("127.0.0.1");
TcpListener clientListener = new TcpListener(iPAddress, 34561);
try
{
clientListener.Start();
Console.WriteLine("Connect...");
while (true)
{
TcpClient tcpClient = clientListener.AcceptTcpClient();
Client client = new Client();
client.tcpClient = tcpClient;
Thread thread = new Thread(new ThreadStart(client.loadClient));
thread.Start();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
clientListener.Stop();
}
Console.ReadKey();
}
}
Client:
Код:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter name: ");
string name = Console.ReadLine();
try
{
TcpClient tcpClient = new TcpClient("127.0.0.1", 34561);
StreamReader reader = new StreamReader(tcpClient.GetStream());
NetworkStream stream = tcpClient.GetStream();
string dataToSend = name + "\n";
byte[] data = Encoding.UTF8.GetBytes(dataToSend);
stream.Write(data, 0, data.Length);
while (true)
{
Console.Write(name + ": ");
dataToSend = Console.ReadLine() + "\n";
data = Encoding.UTF8.GetBytes(dataToSend);
stream.Write(data, 0, data.Length);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.Read();
}
}