当前位置:   article > 正文

使用NIO实现一个echo服务器_用nio技术替代一客户一线程技术改写echo项目的客户机/服务器设计。

用nio技术替代一客户一线程技术改写echo项目的客户机/服务器设计。

    一个简单的echo服务器,客户端向服务端发送消息,服务端进行响应,当客户端发送quit字符串时,断开客户端和服务端的连接。使用NIO实现

    服务端代码

  1. public class EchoServer_NIO {
  2. private Selector selector;
  3. private ByteBuffer sendBuf = ByteBuffer.allocate(1024);
  4. private ByteBuffer recBuf = ByteBuffer.allocate(1024);
  5. public EchoServer_NIO(){
  6. try {
  7. System.out.println("服务器正在启动");
  8. selector = Selector.open();
  9. ServerSocketChannel ssc = ServerSocketChannel.open();
  10. //设置非阻塞模式
  11. ssc.configureBlocking(false);
  12. //绑定端口
  13. ssc.bind(new InetSocketAddress(8777));
  14. ssc.register(selector, SelectionKey.OP_ACCEPT);
  15. System.out.println("服务器启动成功");
  16. } catch (Exception e) {
  17. e.printStackTrace();
  18. System.out.println("服务器启动失败");
  19. }
  20. }
  21. public static void main(String[] args) {
  22. new EchoServer_NIO().service();
  23. }
  24. public void service(){
  25. while (true){
  26. try {
  27. int select = selector.select();
  28. if (select>0){
  29. Set<SelectionKey> selectionKeys = selector.selectedKeys();
  30. Iterator<SelectionKey> iterator = selectionKeys.iterator();
  31. while (
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/160784
推荐阅读
相关标签
  

闽ICP备14008679号