C# 套接字服务器不从客户端接收

本文关键字:客户端 端接 客户 套接字 服务器 | 更新日期: 2023-09-27 17:57:07

我有一个奇怪的问题。我正在尝试使用套接字进行通信编写 C# 服务器 - 客户端项目。我是 C# 的新手,但我用 Java 编写了相同的项目,它在那里工作得很好。

因此,客户端连接到服务器,从套接字的网络流创建读/写流,并通过它发送单个字符串,但服务器没有收到任何内容。

我确定服务器工作正常,因为我已将 Java 客户端连接到它并且它从客户端接收字符串。

我不明白插座怎么连接,但没有任何东西通过它。

下面是客户端的代码:

...
socket = new TcpClient("localhost", PORT);
NetworkStream ns = socket.GetStream();
StreamReader rin = new StreamReader(ns);
StreamWriter wout = new StreamWriter(ns);
Console.WriteLine("-->Connected to server");
string msg;
for (; ; )
{
    Console.WriteLine("waiting to write");
    while(user.Equals("")) //user is set in Form thread working in parallel 
        System.Threading.Thread.Sleep(100);
    Console.WriteLine("sending: " + user);
    wout.WriteLine(user);
    wout.Flush();
    Console.WriteLine("SENT");
    ...

端口是相同的,没有抛出异常(我试了一下 - 抓住这个),客户端通过 StreamWriter 发送字符串,因为它打印出"SENT",但服务器在接收端等待(streamReader.ReadLine()),什么也没发生......

C# 套接字服务器不从客户端接收

试试这个:

socket = new TcpClient();
socket.Connect("localhost", PORT);
//... Your code continues here