首页 > 解决方案 > 无法读取客户端上的消息,但服务器上的 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();

没有我作为命令行放置的代码,该代码可以完美运行。客户端发送了“从客户端发送”输出,我可以在我的屏幕上阅读它。但是,当我尝试从客户端发送反馈消息时,正如我在代码命令行中提到的那样,程序卡住并仅发送已连接!信息。

当来自服务器的消息到达时,我试图从客户端获得反馈我知道有一种方法可以使用缓冲区来完成,但我正在尝试在没有缓冲区的情况下进行。

标签: c#tcptcpclientnetworkstream

解决方案


推荐阅读