如何连接到运行Java服务器的其他计算机?

如何连接到运行Java服务器的其他计算机?,java,Java,我用Java创建了一个简单的echo服务器。当我在本地尝试时,它会正常工作。但是,当我尝试使用服务器运行的IP地址和端口号从其他计算机连接它时,它从未连接。要从其他计算机连接到服务器,是否还需要执行其他操作 import java.net.Socket; import java.net.ServerSocket; public class EchoServer { public static void main(String[] args) throws Exception {

我用Java创建了一个简单的echo服务器。当我在本地尝试时,它会正常工作。但是,当我尝试使用服务器运行的IP地址和端口号从其他计算机连接它时,它从未连接。要从其他计算机连接到服务器,是否还需要执行其他操作

import java.net.Socket;
import java.net.ServerSocket;

public class EchoServer {

    public static void main(String[] args) throws Exception {

        // create socket
        int port = 4444;
        ServerSocket serverSocket = new ServerSocket(port);
        System.err.println("Started server on port " + port);

        // repeatedly wait for connections, and process
        while (true) {

            // a "blocking" call which waits until a connection is requested
            Socket clientSocket = serverSocket.accept();
            System.err.println("Accepted connection from client");

            // open up IO streams
            In  in  = new In (clientSocket);
            Out out = new Out(clientSocket);

            // waits for data and reads it in until connection dies
            // readLine() blocks until the server receives a new line from client
            String s;
            while ((s = in.readLine()) != null) {
                out.println(s);
            }

            // close IO streams, then socket
            System.err.println("Closing connection with client");
            out.close();
            in.close();
            clientSocket.close();
        }
    }
}

如果这是在您的局域网上,请按名称指运行EchoServer的机器(实际的机器名称,我相信他们在发布此EchoServer练习的Sun教程中向您展示了这样做的方法是否正确?)。如果这样做有效,将有助于解决问题。

请检查以下事项

  • 服务器计算机是否位于网络代理之后

  • 它是否有一个独立的公共IP地址,通过该地址可以从 在任何地方或者,它是否有一个内部IP,通过它可以在您的LAN中访问

  • 确保防火墙端口4444存在异常。或者,您可以在客户端和服务器中同时打开它


  • 如果没有帮助,发布你得到的异常(通过编辑问题)。或者服务器程序只是冻结而没有任何错误?

    可能是防火墙阻止了您的连接。尝试禁用它进行一个短测试。您是否被路由器与另一台计算机隔开?添加代码如何创建服务器套接字?调用
    netstat-na
    并检查您绑定服务器的地址是否正确。它应该是0.0.0.0:*(或::*,对于ipv6),我们至少需要查看服务器代码,但一般来说,造成这种情况的两个主要原因通常是防火墙或服务器仅侦听本地环回接口。我关闭了防病毒和防火墙。在
    netstat-na
    中,我看到了我正在监听的端口。输出如下所示:TCP 0.0.0.0:12555 0.0.0.0:0侦听我确信防火墙已关闭。如何检查前两个?从两台计算机打开。如果两个IP相同,则您位于网络代理之后,并且您的计算机没有单独的公共IP。