c# - WriteLineAsync 或 ReadAsync 无法读取 TCP Communicator C# 的字符串
问题描述
我正在创建一个 TCP 服务器/客户端以使用多线程相互通信,但我无法让服务器正确读取客户端发送的字符串。例如,我将字符串“testing”从客户端发送到服务器。在服务器控制台上,它改为读取“Received System.Net.Sockets.NetworkStream”。我已经坚持了几个小时,我不知道如何处理这种情况。任何帮助将不胜感激。
TLDR:服务器和客户端可以相互通信,但服务器无法正确读取客户端发送的字符串。
服务器代码:
async Task EchoAsync(TcpClient client, CancellationToken ct)
{
var buf = new byte[4096];
var stream = client.GetStream();
while (!ct.IsCancellationRequested)
{
var amountRead = await stream.ReadAsync(buf, 0, buf.Length, ct);
WriteToConsole("Received " + stream.ToString(), 0);
if (amountRead == 0)
{
break; // End of stream
}
await stream.WriteAsync(buf, 0, amountRead, ct);
}
}
客户代码:
private async void ClientToServerMsg_btn_Click(object sender, RoutedEventArgs e)
{
using (var NetworkStream = clientSocket.GetStream())
using (var writer = new StreamWriter(NetworkStream))
{
//writer.AutoFlush = true;
WriteToConsole("Writing to server...", 1);
await writer.WriteLineAsync(ClientToServerMsg.Text);
}
}
解决方案
尝试
WriteToConsole("Received " + System.Text.Encoding.ASCII.GetString(buf), 0);
反而
WriteToConsole("Received " + stream.ToString(), 0);
推荐阅读
- reactjs - 将类组件转换为功能错误
- python - 从包含带边框的表格的图像中提取表格结构
- python - Python:URL 图像下载。URL 包含重音字母。我收到一个错误
- java - Java日期时间减法
- php - 为什么本地 PHP 服务器没有发出警告,而 Web 服务器(hostgator)发出警告?
- chatbot - Microsoft 聊天机器人对话如何存储在 Azure 中?
- azure - Azure 订阅:在 PowerShell 上使用证书或 AAD 身份验证?
- python - AWS API 网关,1 个 lambda,每个端点具有公共和私有 vpc 访问权限?
- r - 如何在 R 中使用 ggplot2 构建正确的直方图?
- selenium - 是否可以使用 Selenium 对许多基于云的虚拟机实例进行负载测试?