我正在尝试使用Java打开包含公共IP的套接字。
我有一个服务器程序和一个客户端程序,我可以使用localhost连接它们。我还在一个端口上移植了我的PC,并使用这个端口我可以连接程序。 但是,是否可以在不打开端口的情况下连接它们?
我正在开发这个IP聊天程序,让所有用户打开他们的端口非常不方便。
Server.java包含:
ServerSocket Server = new ServerSocket(Port number);
Client.java包含:
try {
Socket clientSocket = new Socket(public_ip, Port number);
} catch (Exception e) {
e.printStackTrace();
}
我很感激任何帮助,我对套接字很新!
答案 0 :(得分:0)
默认情况下会阻止入站连接,这是出于安全原因。通常不会阻止出站连接。所以最好的解决方案是拥有一台服务器。客户端将毫无问题地连接到它(允许出站连接),服务器将数据传输到客户端。
如果你很好奇服务器如何能够使用连接向客户端传递消息,为客户端提供出站 - 客户端会不断询问服务器是否有新消息,如果是,则返回它们作为响应。