试图创建一个带有公共IP的套接字,java没有端口转发?

时间:2017-06-23 14:49:10

标签: java sockets

我正在尝试使用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();
}

我很感激任何帮助,我对套接字很新!

1 个答案:

答案 0 :(得分:0)

默认情况下会阻止入站连接,这是出于安全原因。通常不会阻止出站连接。所以最好的解决方案是拥有一台服务器。客户端将毫无问题地连接到它(允许出站连接),服务器将数据传输到客户端。

如果你很好奇服务器如何能够使用连接向客户端传递消息,为客户端提供出站 - 客户端会不断询问服务器是否有新消息,如果是,则返回它们作为响应。