c# - 无法读取客户端上的消息,但服务器上的 TCP/IP 连接与 c#
问题描述
我正在尝试学习套接字编程,并在服务器和客户端之间建立了连接。
服务器代码:
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
TcpListener server = new TcpListener(localAddr, port);
server.Start();
while (true)
{
Console.Write("Waiting for a connection... ");
TcpClient client = server.AcceptTcpClient();
// change here for rdt 1.0 2.0 etc
Debug.WriteLine("Connected!");
NetworkStream stream = client.GetStream();
StreamReader sr = new StreamReader(stream);
StreamWriter sw = new StreamWriter(stream);
string valueReaded = sr.ReadToEnd();
Debug.WriteLine(valueReaded);
//sw.WriteLine("Sended from server");
//sw.Flush();
stream.Close();
client.Close();
}
客户代码:
TcpClient client = new TcpClient("127.0.0.1", 1071);
NetworkStream stream = client.GetStream();
StreamWriter sw = new StreamWriter(stream);
StreamReader sr = new StreamReader(stream);
sw.WriteLine("Sended from Client");
sw.Flush();
//string valueReaded = sr.ReadToEnd();
//Debug.WriteLine(valueReaded);
stream.Close();
client.Close();
没有我作为命令行放置的代码,该代码可以完美运行。客户端发送了“从客户端发送”输出,我可以在我的屏幕上阅读它。但是,当我尝试从客户端发送反馈消息时,正如我在代码命令行中提到的那样,程序卡住并仅发送已连接!信息。
当来自服务器的消息到达时,我试图从客户端获得反馈我知道有一种方法可以使用缓冲区来完成,但我正在尝试在没有缓冲区的情况下进行。
解决方案
推荐阅读
- python - 在 Python 中创建内置数组对象的 C-API 接口是什么?
- arrays - AVQueuePlayer 不会停止播放
- django - 如何从 django 管理站点中删除更改密码链接?
- apache-kafka - Flink流表使用kafka源码和使用flink sql查询
- reactjs - React Link 不刷新
- amazon-web-services - AWS ALB 似乎比 CLB 慢
- flutter - MultiBlocProvider 未实例化所有 bloc 提供程序 - 如何正确使用 MultiBlocProvider?
- python - 捕获两种类型的警告
- python - 熊猫“日期”不在列表中
- rust - 如何在 Rust 中杀死 Ctrl+C 事件的进程?