Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java将客户端连接到本地主机时出现问题_Java_Eclipse_Sockets_Localhost - Fatal编程技术网

使用Java将客户端连接到本地主机时出现问题

使用Java将客户端连接到本地主机时出现问题,java,eclipse,sockets,localhost,Java,Eclipse,Sockets,Localhost,我正在尝试使用套接字设置受保护的客户端和受保护的服务器连接。每当我运行程序时,我都会收到一个连接错误,表示连接被拒绝。我在MacOS上运行的EclipseIDE中使用Java。你知道为什么这段代码不能连接到我的本地主机吗 受保护的客户端: public static void main(String[] args) throws Exception { String host = "localhost"; int port = 7999;

我正在尝试使用套接字设置受保护的客户端和受保护的服务器连接。每当我运行程序时,我都会收到一个连接错误,表示连接被拒绝。我在MacOS上运行的EclipseIDE中使用Java。你知道为什么这段代码不能连接到我的本地主机吗

受保护的客户端:

public static void main(String[] args) throws Exception 
    {
        String host = "localhost";
        int port = 7999;
        String user = "George";         
        String password = "abc123";     
        Socket s = new Socket(host, port);

        ProtectedClient client = new ProtectedClient();
        client.sendAuthentication(user, password, s.getOutputStream());

        s.close();
    }
受保护服务器

public static void main(String[] args) throws Exception 
{
    int port = 7999;    //7999
    ServerSocket s = new ServerSocket(port);
    Socket client = s.accept();

    ProtectedServer server = new ProtectedServer();

    if (server.authenticate(client.getInputStream()))
      System.out.println("Client logged in.");
    else
      System.out.println("Client failed to log in.");

    s.close();
}
运行程序时,我收到以下错误:

Exception in thread "main" java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:431)
    at java.net.Socket.connect(Socket.java:527)
    at java.net.Socket.connect(Socket.java:476)
    at java.net.Socket.<init>(Socket.java:373)
    at java.net.Socket.<init>(Socket.java:216)
    at ProtectedClient.main(ProtectedClient.java:36)
线程“main”java.net.ConnectException中的异常:连接被拒绝 位于java.net.PlainSocketImpl.socketConnect(本机方法) 位于java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382) 位于java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241) 位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228) 位于java.net.socksocketimpl.connect(socksocketimpl.java:431) 位于java.net.Socket.connect(Socket.java:527) 位于java.net.Socket.connect(Socket.java:476) 位于java.net.Socket(Socket.java:373) 位于java.net.Socket。(Socket.java:216) 位于ProtectedClient.main(ProtectedClient.java:36)
我以前在使用特定套接字时遇到过此错误。尝试不同的插座,如5687。(或者,如果您需要特定的套接字,请尝试确保防火墙允许)


确保也在服务器上调用client.close()。如果您的程序工作过一次,它可能会阻塞该端口。

我以前在使用特定套接字时遇到过此错误。尝试不同的插座,如5687。(或者,如果您需要特定的套接字,请尝试确保防火墙允许)


确保也在服务器上调用client.close()。如果您的程序工作过一次,它可能会阻塞该端口。

您启动服务器了吗?也,看起来您的服务器将在一个客户端之后关闭。您是否检查了代理?@constantlearner在连接到环回接口(如LocalHost)时不使用代理您是否有防火墙阻止端口7999?最好从主方法中删除
抛出异常
,并在异常发生的位置处理异常你启动服务器了吗?也,看起来您的服务器将在一个客户端之后关闭。您是否检查了代理?@constantlearner在连接到环回接口(如LocalHost)时不使用代理您是否有防火墙阻止端口7999?最好从主方法中删除
抛出异常
,并在异常发生的位置处理异常如果发生这种情况,将抛出BindException而不是泛型异常。不过,这仍然是一个很好的做法。感谢您的客户。close()建议。我现在收到“客户端登录”打印行。如果是这种情况,将引发BindException而不是一般异常。不过,这仍然是一个很好的做法。感谢您的客户。close()建议。我现在收到“客户端登录”打印行。