我正在尝试使用套接字设置 protected 客户端和 protected 服务器连接。每当我运行该程序时,我都会收到一条连接错误,指出连接被拒绝。我在 MAC OS 上运行的 Eclipse IDE 中使用 Java。任何想法为什么此代码无法连接到我的本地主机?
protected 客户端:
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();
}
protected 服务器
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)
最佳答案
我之前在使用特定套接字时遇到过此错误。尝试使用不同的套接字,例如 5687。(或者,如果您需要该特定套接字,请尝试确保您的防火墙允许它)。
确保您也在服务器上调用 client.close()。 如果您的程序曾经运行过,则可能会阻塞该端口。
关于java - 使用 Java 将客户端连接到本地主机时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20081121/