1

我已经使用 Spring 框架和 Netty SocketIO 实现了一个 websocket 服务器。在开发过程中,我使用了主机地址,localhost并且服务器运行良好。

当我尝试将我的代码部署到 AWS 时,我将主机地址更改为我的实例的公共 IP 地址。但我收到以下错误,我无法启动我的服务器

Caused by: java.net.BindException: Can't assign requested address
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:125)
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:484)
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1080)
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:430)
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:415)
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:903)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:197)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:350)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)

如果我可以在 AWS 中为主机分配我的公共 IP 地址,那么我可以使用哪个 IP 地址来启动我的 Socket 服务器?

4

1 回答 1

5

检查您的 /etc/hosts 文件。127.0.0.1 或 192.168.10.10 或任何指向localhost的 IP 也必须指向您的网站。

127.0.0.1 localhost my.website.com

现在,以my.website.com作为主机启动您的套接字,并根据需要选择一个端口。

于 2017-11-04T09:24:52.460 回答