ServerSocketChannel server = ServerSocketChannel.open();//打开一个服务端
InetSocketAddress ip = new InetSocketAddress(port);
server.socket().bind(ip);//绑定一个IP
server.configureBlocking(false);//设置非阻塞模式
System.out.println("11");
//结果在这里,多次运行后,发现会在这里卡住动不了
server.register(selector, SelectionKey.OP_ACCEPT);//注册监听
System.out.println("22");
server_list.add(server);
server_ip_list.add(ip);
System.out.println("服务器打开了:" + port + "端口");
System.out.flush();
InetSocketAddress ip = new InetSocketAddress(port);
server.socket().bind(ip);//绑定一个IP
server.configureBlocking(false);//设置非阻塞模式
System.out.println("11");
//结果在这里,多次运行后,发现会在这里卡住动不了
server.register(selector, SelectionKey.OP_ACCEPT);//注册监听
System.out.println("22");
server_list.add(server);
server_ip_list.add(ip);
System.out.println("服务器打开了:" + port + "端口");
System.out.flush();
如下可以執行到完。ServerSocketChannel server = ServerSocketChannel.open();//打开一个服务端
int port=8808;
InetSocketAddress ip = new InetSocketAddress(port);
server.socket().bind(ip);//绑定一个IP
server.configureBlocking(false);//设置非阻塞模式
System.out.println("11");
//结果在这里,多次运行后,发现会在这里卡住动不了
server.register(Selector.open(), SelectionKey.OP_ACCEPT);//注册监听
System.out.println("22");
//server_list.add(server);
//server_ip_list.add(ip);
System.out.println("服务器打开了:" + port + "端口");
System.out.flush();
// 最后发现,先注册,后绑定IP就不会再出问题,为啥呢? server.configureBlocking(false);//设置非阻塞模式
System.out.println("11");
server.register(selector, SelectionKey.OP_ACCEPT);//注册监听
server.socket().bind(ip);//绑定一个IP ///////////////////////////////
System.out.println("22");
server.socket().setReuseAddress(true);
}