c# - StreamWriter 不写入网络流,但 StreamReader 可以在 C# 中成功读取?
问题描述
这是我目前的代码:
static IPAddress ipAddr = IPAddress.Parse("MYIPADRESSGOESHERE");
static IPEndPoint localEndPoint = new IPEndPoint(ipAddr, 88);
static Socket Server = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
static void Main(string[] args)
{
Server.Bind(localEndPoint);
Server.Listen(10);
while (true)
{
Console.WriteLine("Ready");
Socket clientSocket = Server.Accept();
NetworkStream networkStream = new NetworkStream(clientSocket);
StreamReader streamReader = new StreamReader(networkStream);
StreamWriter streamWriter = new StreamWriter(networkStream);
string line = streamReader.ReadLine();
while (line != "STOP")
{
Console.WriteLine("Client says: " + line);
switch (line)
{
case "START":
streamWriter.WriteLine("WELCOME");
Console.WriteLine("here");
break;
case "DATA":
break;
}
line = streamReader.ReadLine();
}
Console.WriteLine("Client disconnected");
}
}
我使用 telnet 作为客户端。连接已正确建立。从 telnet 发送任何内容都会在服务器控制台上回显“客户端说:”。发送“STOP”会断开服务器。但是,当我发送“START”时,我可以在服务器控制台上看到“here”,但在客户端控制台 (telnet) 上没有得到响应。
我的假设是 StreamWriter 有问题,无论是在声明中还是在 WriteLine 方法的调用中。我不知道如何解决这个问题。
解决方案
推荐阅读
- javascript - Meteor Http 客户端 API 调用 Gzip 解压缩结果 JSON 不起作用
- include - 使用 yocto bitbake 包含路径
- java - 在使用 Android 的 android MZ320 中使用 cpcl 将图像和文本打印到收据
- sql-server - 使用 SQL Server 从 BLOB 数据创建文件
- android - 找不到 play-services-auth-base-license.aar - Ionic android 构建失败
- spring - 使用 tomcat embed 作为 Hikari 的数据源?
- javascript - 如何“复制” Safari 浏览器历史记录后退按钮行为(_blank,关闭选项卡)
- java - 如何在 Hibernate 中动态设置 @Column 名称
- c# - 使用 post Web API C# 返回用户配置文件
- json - 每当引用从函数返回的切片或映射时为空指针