【发布时间】:2014-12-03 04:01:40
【问题描述】:
我遇到了这种奇怪的情况,我可以将 ServerBootstrap 与本地 IP 地址绑定,但是当我尝试使用我的公共 IP 地址时,它会引发异常:Exception in thread "main" org.jboss.netty.channel.ChannelException: Failed to bind to: /57.88.173.132:5055
谁能给我解释一下怎么回事???顺便说一句,我正在使用 netty 3.6.1
我更改了地址,它不是真实的,它们是随机数,但是 端口是真实的
这里是代码
私有静态最终字符串 BIND_ADDRESS = "57.88.173.132"; 私有静态最终 int PORT = 5055;
public Server()
{
try
{
startup();
}
catch (IOException e)
{
e.printStackTrace();
}
}
private void startup() throws IOException
{
ServerBootstrap serBootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(Executors.newCachedThreadPool(),Executors.newCachedThreadPool()));
serBootstrap.setPipelineFactory(new PipelineFactory());
serBootstrap.bind(new InetSocketAddress(BIND_ADDRESS,PORT));
这是抛出的异常
Exception in thread "main" org.jboss.netty.channel.ChannelException: Failed to bind to: /57.88.173.132:5055
at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:301)
at com.game.server.Server.startup(Server.java:33)
at com.game.server.Server.<init>(Server.java:22)
at com.game.server.Server.main(Server.java:44)
Caused by: java.net.BindException: Cannot assign requested address: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
at org.jboss.netty.channel.socket.nio.NioServerBoss$RegisterTask.run(NioServerBoss.java:193)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:367)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:291)
at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
【问题讨论】:
-
你能发布堆栈跟踪吗?
-
我知道地址不是真实的吗?
-
Frederic 别担心我改变了它,因为我不想让人们知道我的公共 IP
-
@Nicholas 我添加了堆栈跟踪
-
我的意思是:在您的真实环境中,您指定的地址是真实的吗?正如 Maksym 的回答中所指出的那样,似乎不是,所以错误(不是 Netty 的错)。
标签: bind netty nullreferenceexception public server