Отправка данных по сокету 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 - ответ
Буду благодарен за помощь