C# 网络上的StreamReader Stream未读取行

C# 网络上的StreamReader Stream未读取行,c#,networking,streamreader,streamwriter,networkstream,C#,Networking,Streamreader,Streamwriter,Networkstream,我正在尝试创建一个简单的客户端/服务器连接类。该类中有一个服务器端客户端,但它不会获取写入服务器网络流的内容。 如果您想知道,我打算让所有数据在发送到客户机之前通过服务器程序,因此我需要一些东西来处理NetworkStream(因此是服务器端客户机)上的所有数据。这是我的班级: public class ConnectionServer { public readonly IPAddress ServerIP; public readonly IPAddress LocalIP;

我正在尝试创建一个简单的客户端/服务器连接类。该类中有一个服务器端客户端,但它不会获取写入服务器网络流的内容。 如果您想知道,我打算让所有数据在发送到客户机之前通过服务器程序,因此我需要一些东西来处理NetworkStream(因此是服务器端客户机)上的所有数据。这是我的班级:

public class ConnectionServer
{
    public readonly IPAddress ServerIP;
    public readonly IPAddress LocalIP;
    public readonly int Port;
    private TcpListener ServerIn;
    private Socket ServerSocket;
    private TcpClient ServerSideClient;
    private NetworkStream NetStream;
    public StreamReader ServerInput;
    public StreamWriter ServerOutput;

    public ConnectionServer(int port)
    {
        try
        {
            Port = port;
            ServerIP = IPAddress.Parse(NetHelper.GetPublicIP());
            LocalIP = IPAddress.Parse(NetHelper.GetLocalIP());

            ServerIn = new TcpListener(IPAddress.Any, Port);
            ServerIn.Start();                
            Console.WriteLine("Server Started At: " + ServerIP.ToString() + ":" + Convert.ToString(Port));
            ServerSideClient = new TcpClient("localhost", Port);
            ServerSocket = ServerIn.AcceptSocket();
            Console.WriteLine("Server-Side Client Socket Accepted.");
            NetStream = ServerSideClient.GetStream();
            ServerInput = new StreamReader(NetStream);
            ServerOutput = new StreamWriter(NetStream);
            ServerOutput.AutoFlush = true;
            Console.WriteLine("All Streams Initialized.");
            ServerOutput.WriteLine("Testing Server-Side Client.");                
            Console.WriteLine("Test Message Sent.");
            Console.WriteLine(ServerInput.ReadLine());
        }

        finally
        {

        }
    }

    ~ConnectionServer()
    {
        ServerInput.Dispose();
        ServerSideClient.Close();
    }

}
它不在
Console.WriteLine(ServerInput.ReadLine())上写入任何内容。我不明白为什么它不能从流中提取消息。

请帮助?

您当前的问题是,您试图使用相同的流进行读写
NetStream
是输入流——来自客户端的数据。如果要写入套接字,则需要从套接字创建流

当它被写入时,您正在向客户端流写入。您需要写入服务器流

我不明白的是,为什么在创建
TcpListener
之后,在客户端使用
TcpClient
,在服务器端使用原始套接字。你最好用它。然后,您可以写入该客户机的流并从另一个流读取


要从套接字创建
网络流
,请使用。不过,我强烈建议您切换到
AcceptTcpClient

您发送什么数据?它是否以换行结束?
ServerSocket
是一个连接到您的客户端。试着用
.Read()
从中读取
ServerSideClient
只是一个您可能不需要的循环。(并且可能隐藏任何真实的外部连接)那么我如何从套接字创建流呢?(我是C#Networking的新手)我两个都试过了,但都不管用。。。但话说回来,这是我第一次尝试C#networking,所以只有1。它失败了,2。这是胡乱拼凑起来的。我将从头开始再试一次,但这次我将使用
AcceptTcpClient()
并记住其他建议。谢谢你的帮助,如果我以后有任何问题,我会更新的。