listener.AcceptTcpClient()不能在c#中工作,只能在Java中工作

本文关键字:工作 Java AcceptTcpClient 不能 listener | 更新日期: 2023-09-27 18:18:11

我有一个用Java实现的套接字侦听器应用程序,并且工作良好

c#代码:

        IPAddress serverAddress = IPAddress.Parse("127.0.0.1");
        TcpListener listener = new TcpListener(serverAddress, 1234);
        listener.Start();
        while (true)
        {
            TcpClient client = listener.AcceptTcpClient();
            NetworkStream stream = client.GetStream();
            byte[] data = new byte[client.ReceiveBufferSize];
            int bytesRead = stream.Read(data, 0, Convert.ToInt32(client.ReceiveBufferSize));
            string request = Encoding.ASCII.GetString(data, 0, bytesRead);
            Console.WriteLine(request);
        }

白色,在Java中可以正常工作:

ServerSocket server = new ServerSocket(1234);
Socket socket = server.accept();

在java中,一个新的客户端连接启动,我设法读取数据。而在c#中,它根本没有创建任何TcpClient。

请帮忙!

listener.AcceptTcpClient()不能在c#中工作,只能在Java中工作

尝试用下面的代码替换您的TcpLister初始化:

TcpListener listener = new TcpListener(IPAddress.Any, 1234);

当您使用"127.0.0.1"时,您将服务器套接字绑定到环回地址。只有同一台机器上的客户端才能与使用环回IP的服务器通信。