fix unlimiting server reading

This commit is contained in:
Sharikov P.P.
2026-01-16 01:54:00 +07:00
parent 87bccdddad
commit 4269d891e9
2 changed files with 39 additions and 45 deletions

View File

@@ -1,7 +1,6 @@
using System;
using System.CommandLine;
using System.CommandLine.Parsing;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
@@ -38,8 +37,6 @@ namespace f_cln
messageOption
};
rootCommand.Parse("--version").Invoke();
ParseResult parseResult = rootCommand.Parse(args);
if (parseResult.Errors.Count == 0)
{
@@ -90,21 +87,24 @@ namespace f_cln
Console.WriteLine("Подключено к серверу");
using var stream = client.GetStream();
using var reader = new StreamReader(stream, Encoding.UTF8);
using var writer = new StreamWriter(stream, Encoding.UTF8) { AutoFlush = true };
// Отправка сообщения
var messageBytes = Encoding.UTF8.GetBytes(message + Environment.NewLine);
await stream.WriteAsync(messageBytes, 0, messageBytes.Length);
await writer.WriteLineAsync(message);
Console.WriteLine($"Отправлено: {message}");
// Чтение ответа
var buffer = new byte[1024];
var bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length);
var response = await reader.ReadLineAsync();
if (bytesRead > 0)
if (response != null)
{
var response = Encoding.UTF8.GetString(buffer, 0, bytesRead).TrimEnd('\n', '\r');
Console.WriteLine($"Получено: {response}");
}
else
{
Console.WriteLine("Сервер не ответил");
}
}
catch (SocketException ex)
{
@@ -126,7 +126,8 @@ namespace f_cln
Console.WriteLine("Введите текст для отправки (или 'exit' для выхода):");
using var stream = client.GetStream();
var buffer = new byte[1024];
using var reader = new StreamReader(stream, Encoding.UTF8);
using var writer = new StreamWriter(stream, Encoding.UTF8) { AutoFlush = true };
while (true)
{
@@ -146,15 +147,13 @@ namespace f_cln
try
{
// Отправка сообщения
var messageBytes = Encoding.UTF8.GetBytes(input + Environment.NewLine);
await stream.WriteAsync(messageBytes, 0, messageBytes.Length);
await writer.WriteLineAsync(input);
// Чтение ответа
var bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length);
var response = await reader.ReadLineAsync();
if (bytesRead > 0)
if (response != null)
{
var response = Encoding.UTF8.GetString(buffer, 0, bytesRead).TrimEnd('\n', '\r');
Console.WriteLine($"Ответ: {response}");
}
else