Отправка данных по сокету c#

код сервера, тут производится чтение данных.

while (true)
{
    IPAddress ip = IPAddress.Parse("127.0.0.1");
    IPEndPoint ipPoint = new IPEndPoint(ip, 8888);
    using Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    socket.Bind(ipPoint);

    socket.Listen();

    Console.WriteLine($"Айпи: {ipPoint}, \nПорт {ipPoint.Port}");
    Console.WriteLine("Сервер запущен. Ожидание подключений...");
    // получаем входящее подключение
    using Socket client = await socket.AcceptAsync();
    // получаем адрес клиента
    Console.WriteLine($"Адрес подключенного клиента: {client.RemoteEndPoint}");

    byte[] buffer = new byte[1024];
    await client.ReceiveAsync(buffer);

    if (buffer.Length == 0 || buffer == null) break;

    string s = Encoding.UTF8.GetString(buffer);
    Console.WriteLine(s);
}

код клиента, он отправляет данные, вводя данные через консоль.

while (true)
{
    using var socket = new Socket(AddressFamily.InterNetwork, 
    SocketType.Stream, ProtocolType.Tcp);
    try
    {
        await socket.ConnectAsync("127.0.0.1", 8888);
        Console.WriteLine($"Подключение к {socket.RemoteEndPoint} установлено");

        if (Console.ReadLine() != null)
        {
            string s = Console.ReadLine();
            
            if (string.IsNullOrEmpty(s) )
            {
                byte[] buf = Encoding.UTF8.GetBytes(s);

                if (buf.Length == 0 || buf == null) break;

               await socket.SendAsync(buf);
            }
        }
    }
    catch (SocketException)
    {
        Console.WriteLine($"Не удалось установить подключение с {socket.RemoteEndPoint}");
    }
}

Что же я получая на деле?

введите сюда описание изображения

Он просто берёт и заново пишет информацию о сервере, хотя, должен был прочитать данные. Сервер читает всё через строчку. То есть условно: 1 строка - игнор, 2 - ответ

Буду благодарен за помощь


Ответы (0 шт):