TcpListener没有';t接受TcpClient

本文关键字:接受 TcpClient 没有 TcpListener | 更新日期: 2023-09-27 18:24:57

下面的代码是Microsoft为TcpListener提供的代码示例,但我无法运行它:

using System;
using System.Net;
using System.Net.Sockets;
public class TcpListenerSample
{
    static void Main(string[] args)
    {
        try
        {
            // set the TcpListener on port 13000
            int port = 13000;
            TcpListener server = new TcpListener(IPAddress.Any, port);
            // Start listening for client requests
            server.Start();
            // Buffer for reading data
            byte[] bytes = new byte[1024];
            string data;
            //Enter the listening loop
            while (true)
            {
                Console.Write("Waiting for a connection... ");
                // Perform a blocking call to accept requests.
                // You could also user server.AcceptSocket() here.
                TcpClient client = server.AcceptTcpClient();
                Console.WriteLine("Connected!");
                // Get a stream object for reading and writing
                NetworkStream stream = client.GetStream();
                int i;
                // Loop to receive all the data sent by the client.
                i = stream.Read(bytes, 0, bytes.Length);
                while (i != 0)
                {
                    // Translate data bytes to a ASCII string.
                    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
                    Console.WriteLine(String.Format("Received: {0}", data));
                    // Process the data sent by the client.
                    data = data.ToUpper();
                    byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);
                    // Send back a response.
                    stream.Write(msg, 0, msg.Length);
                    Console.WriteLine(String.Format("Sent: {0}", data));
                    i = stream.Read(bytes, 0, bytes.Length);
                }
                // Shutdown and end connection
                client.Close();
            }
        }
        catch (SocketException e)
        {
            Console.WriteLine("SocketException: {0}", e);
        }
        Console.WriteLine("Hit enter to continue...");
        Console.Read();
    }
}

代码停留在这一行的循环中:

TcpClient client = server.AcceptTcpClient();

我已经关闭了防火墙,但没有任何变化。

我该如何解决这个问题?

TcpListener没有';t接受TcpClient

AcceptTcpClient()是一个阻塞调用,它将阻塞直到客户端连接到您的TcpListener。因此,你需要使用某种客户端应用程序来测试你的服务器并连接到它。你可以使用Putty。