Java 仅接受来自我的应用程序的连接
我正在从事一个java项目,其中有一个服务器和一个客户端应用程序。服务器接受连接并通过套接字编程将请求的数据发送到客户端 一切正常,但当上传并在服务器上工作时,我从未知ip获得连接。该应用程序将在许多国家使用,因此不会有特定的ip进入白名单Java 仅接受来自我的应用程序的连接,java,sockets,Java,Sockets,我正在从事一个java项目,其中有一个服务器和一个客户端应用程序。服务器接受连接并通过套接字编程将请求的数据发送到客户端 一切正常,但当上传并在服务器上工作时,我从未知ip获得连接。该应用程序将在许多国家使用,因此不会有特定的ip进入白名单 是否有办法禁止/拒绝这些ip,以便服务器使用套接字只接受来自我的应用程序的连接。在请求与服务器的连接时,是否可以发送自定义数据,以便服务器只接受这些连接。接受入站连接后,您可以在返回的套接字上使用Socket.getInetAddress()来检索并随后验证
是否有办法禁止/拒绝这些ip,以便服务器使用套接字只接受来自我的应用程序的连接。在请求与服务器的连接时,是否可以发送自定义数据,以便服务器只接受这些连接。接受入站连接后,您可以在返回的套接字上使用
Socket.getInetAddress()
来检索并随后验证IP
如果不允许IP,则使用Socket.close()
关闭不需要的连接
编辑:当然,验证的基础不仅仅是IP。一旦连接打开,您就可以使用其流传输任意数据以识别客户端,例如在身份验证失败后关闭连接 这样做,你应该考虑有人能够拦截你的通信的可能性。换句话说,使用安全连接是有意义的
我不知道如何在打开(接受)连接之前用Java对客户端进行身份验证。您所描述的选择性接受属于本文的范围。您需要将客户端连接到:
我建议您看看这样的库,它将为您带来一些繁重的工作。如果您的服务器和客户端需要验证,您也应该考虑使用证书 以下是更多信息: