博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.案例 - NIO实现TCP通信
阅读量:5888 次
发布时间:2019-06-19

本文共 1880 字,大约阅读时间需要 6 分钟。

服务端:package cn.tedu.nio.channel;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.ServerSocketChannel;import java.nio.channels.SocketChannel;public class ServerSocketChannelDemo01 {    public static void main(String[] args) throws Exception {        //1.创建ServerSockentChannel对象        ServerSocketChannel ssc = ServerSocketChannel.open();        //2.绑定指定端口        ssc.bind(new InetSocketAddress(44444));        //3.设置非阻塞模式        ssc.configureBlocking(false);        //4.接收客户端连接        SocketChannel sc = null;        while(sc == null){            sc = ssc.accept();        }        sc.configureBlocking(false);        //5.读取数据        ByteBuffer buf = ByteBuffer.allocate(5);        while(buf.hasRemaining()){            sc.read(buf);        }        //6.获取数据打印        byte[] arr = buf.array();        String str = new String(arr);        System.out.println(str);                //5.关闭通道        sc.close();        ssc.close();    }}客户端:    package cn.tedu.nio.channel;        import java.net.InetSocketAddress;    import java.nio.ByteBuffer;    import java.nio.channels.SocketChannel;        public class SocketChannelDemo01 {        public static void main(String[] args) throws Exception {            //1.创建客户端SocketChannel            SocketChannel sc = SocketChannel.open();            //2.配置启用非阻塞模式            sc.configureBlocking(false);            //3.连接服务器            boolean isConn = sc.connect(new InetSocketAddress("127.0.0.1", 44444));            if(!isConn){                while(!sc.finishConnect()){                }            }                        //4.发送数据到服务器            ByteBuffer buf = ByteBuffer.wrap("abcde".getBytes());            while(buf.hasRemaining()){                sc.write(buf);            }                        //5.关闭通道            sc.close();        }    }

 

转载于:https://www.cnblogs.com/v-lcc/p/9704746.html

你可能感兴趣的文章
[转载] 高级人工智能——第1章 绪论
查看>>
windows 2003的基本培配置
查看>>
我的友情链接
查看>>
DATAGUARD搭建脚本.
查看>>
[转载] 七龙珠第一部——第126话 复活的神龙
查看>>
第五阶段计划
查看>>
SDN in Action: Practice SDN/OpenFlow with LINC-Switch and OpenDaylight
查看>>
Java基础学习总结(19)——Java环境变量配置
查看>>
Java基础学习总结(1)——equals方法
查看>>
浅谈mysql优化方式
查看>>
如何修改MySQL字符集
查看>>
C++语言学习(十五)——C++抽象类与接口
查看>>
Java基础学习总结(4)——对象转型
查看>>
二、使用Okio框架进行输出操作(Sink)
查看>>
Maven学习总结(八)——使用Maven构建多模块项目
查看>>
Git使用详细教程
查看>>
Java基础学习总结(28)——Java对各种排序算法的实现
查看>>
我的友情链接
查看>>
Java基础学习总结(7)——Object类
查看>>
Maven学习总结(11)——Maven Tomcat7自动部署
查看>>