一个简单的echo服务器,客户端向服务端发送消息,服务端进行响应,当客户端发送quit字符串时,断开客户端和服务端的连接。使用NIO实现
服务端代码
public class EchoServer_NIO {
private Selector selector;
private ByteBuffer sendBuf = ByteBuffer.allocate(1024);
private ByteBuffer recBuf = ByteBuffer.allocate(1024);
public EchoServer_NIO(){
try {
System.out.println("服务器正在启动");
selector = Selector.open();
ServerSocketChannel ssc = ServerSocketChannel.open();
//设置非阻塞模式
ssc.configureBlocking(false);
//绑定端口
ssc.bind(new InetSocketAddress(8777));
ssc.register(selector, SelectionKey.OP_ACCEPT);
System.out.println("服务器启动成功");
} catch (Exception e) {
e.printStackTrace();
System.out.println("服务器启动失败");
}
}
public static void main(String[] args) {
new EchoServer_NIO().service();
}
public void service(){
while (true){
try {
int select = selector.select();
if (select>0){
Set<SelectionKey> selectionKeys = selector.selectedKeys();
Iterator<SelectionKey> iterator = selectionKeys.iterator();
while (