Я не могу найти ответ на вопрос, я делаю простой чат с сервером и клиентом, сервер принимает все сообщения отправление клиентами и рассылает их всем клиентам, я знаю как сделать то, как будет рассылать. Мне нужно узнать как сделать прием этих сообщений.
Заранее спасибо Вот код Client_Chat.cs
using System;
using System.Text;
using System.Net.Sockets;
using System.Threading;
class Program
{
private const int port = 9001;
private const string server = "127.0.0.1";
private const int byteLimit = 2048;
static void Main(string[] args)
{
try
{
TcpClient client = new TcpClient();
client.Connect(server, port);
byte[] data = new byte[byteLimit];
string response;
NetworkStream stream = client.GetStream();
do
{
int bytes = stream.Read(data, 0, data.Length);
response = Encoding.UTF8.GetString(data, 0, bytes);
}
while (stream.DataAvailable); // пока данные есть в потоке
Console.WriteLine(response);
}
catch
{
}
}
}
Chat_Server.cs
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace TcpListenerApp
{
class Program
{
const int port = 9001; // порт для прослушивания подключений
static void Main(string[] args)
{
int connectedClients = 0;
TcpListener server = null;
try
{
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
server = new TcpListener(localAddr, port);
List<TcpClient> clients = new List<TcpClient>();
List<NetworkStream> streams = new List<NetworkStream>();
// запуск слушателя
server.Start();
while (true)
{
Console.WriteLine("Ожидание подключений... ");
// получаем входящее подключение
TcpClient client = server.AcceptTcpClient();
clients.Add(client);
connectedClients++;
Console.WriteLine("Подключен клиент. Выполнение запроса...");
Console.WriteLine(clients);
// получаем сетевой поток для чтения и записи
NetworkStream stream = client.GetStream();
streams.Add(stream);
// сообщение для отправки клиенту
string response = "Привет мир";
// преобразуем сообщение в массив байтов
byte[] data = Encoding.UTF8.GetBytes(response);
// отправка сообщения
stream.Write(data, 0, data.Length);
Console.WriteLine("Отправлено сообщение: {0}", response);
// закрываем поток
stream.Close();
// закрываем подключение
client.Close();
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
if (server != null)
server.Stop();
}
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я пробовал разные варианты кастомного identity, даже мелкие отступления в сторону от типового решения (допустим, решил поменять тип поля для...
Есть такая задачка простенькаяПодсчитать количество повторений строковых элементов в неотсортированных коллекциях
Есть статический класс (мой) в котором я в начале игры достаю из сервера время, как мне потом к нему прибавлять время пройденное в игре что...
Мне необходимо убрать дублирование шапки страницы как на скринахНа первом скрине это макет того как отчет должен выглядеть