我在java中的套接字使用方面遇到了麻烦。首先,让我解释一下我想用 java 中的套接字做什么。我想通过它通过 Internet 连接我的笔记本电脑。我的笔记本电脑有一个服务器,一个客户端必须通过互联网连接。因为我有一个路由器来处理我的本地网络,并且我不想将路由器上的端口连接到我的笔记本电脑,所以我需要遵循路径“internet->router->localNetwork->mylaptop”。问题是我找到了一种同时使用互联网 IP 地址和本地 IP 地址的方法;但是,它会引发异常:"Exception in thread "main" java.net.BindException: Address already in use"
我尝试的代码是:
InetAddress addr = InetAddress.getByName("XXX.XXX.XXX.XXX");
InetAddress local = InetAddress.getByName("YYY.YYY.YYY.YYY");
Socket socket = new Socket(addr, 1111, local, 1111); // The line I have got exception
通过将路由器端口连接到我的笔记本电脑,我可以出于类似目的运行此代码:
Socket socket = new Socket("XXX.XXX.XXX.XXX", 1111);
*Xs 代表互联网 IP 地址
*Ys 代表本地 IP 地址
*代码属于代码的客户端