国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > java基础 > SocketChannel在java中实现客户端

SocketChannel在java中实现客户端

java SocketChannel

头像

小妮浅浅

2021-06-08 09:57:363183浏览 · 0收藏 · 0评论

1、步骤

(1)创建SocketChannel实例,并将其配置为非阻塞模式,只有在SocketChannel实例中,任何I/O操作都是非阻塞的。

(2)使用connect()方法连接服务器,同时使用while循环连续检测和完全连接。在需要立即进行I/O操作之前,必须使用finishConnect()来完成连接过程。

(3)用ByteBuffer读写字节,假如SelectableChannel是一种非阻塞模式,那么它的I/O操作读写字节可能比实际字节少,甚至没有。因此,我们使用循环连续的读写来确保读写完成。

2、实例

public class NonBlockingTCPClient {
    public static void main(String[] args) {
        byte[] data = "hello".getBytes();
        SocketChannel channel = null;
        try {
            // 1. open a socket channel
            channel = SocketChannel.open();
            // adjust to be nonblocking
            channel.configureBlocking(false);
            // 2. init connection to server and repeatedly poll with complete
            // connect() and finishConnect() are nonblocking operation, both return immediately
            if (!channel.connect(new InetSocketAddress(InetAddress.getLocalHost(), 8899))) {
                while (!channel.finishConnect()) {
                    System.out.print(".");
                }
            }
 
            System.out.println("Connected to server...");
 
            ByteBuffer writeBuffer = ByteBuffer.wrap(data);
            ByteBuffer readBuffer = ByteBuffer.allocate(data.length);
            int totalBytesReceived = 0;
            int bytesReceived;
            // 3. read and write bytes
            while (totalBytesReceived < data.length) {
                if (writeBuffer.hasRemaining()) {
                    channel.write(writeBuffer);
                }
                if ((bytesReceived = channel.read(readBuffer)) == -1) {
                    throw new SocketException("Connection closed prematurely");
                }
                totalBytesReceived += bytesReceived;
                System.out.print(".");
            }
            System.out.println("Server said: " + new String(readBuffer.array()));
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 4 .close socket channel
            try {
                if (channel != null) {
                    channel.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

以上就是SocketChannel在java中实现客户端的方法,希望对大家有所帮助。更多Java学习指路:Java基础

本教程操作环境:windows7系统、java10版,DELL G3电脑。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

妈妈的绣感1(深绿)| 歪歪漫画| 阴部按摩出水太尴尬怎么办| 男人吃奶摸下面弄进去会怀孕吗| 小雪解开乳罩给老杨摸| 做我的爱人6集免费观看电视剧 | 我兄弟的妈妈免费观看电视剧| 《厨房激战5》完整版在线观看| 把她日出水了好紧大爽了视频| 暴躁少女免费看完整版| 漂亮的女邻居5》HD | 五姑娘影院在线观看免费版电视剧| 豪门贵妇猎美录TXT| 有夫之妇精油按摩的功效与作用| 我兄弟的妈妈免费观看电视剧| 少女たちよ观看免费高清电视剧| 《肉体暴力强伦轩》| 二女片免费观看电视剧杨贵妃传 | 特级毛片《武则天》| 人犬兽人在线观看免费完整| 亚洲AV无码精品色午夜蜜桃| 中文在线字幕免费观看电视剧| 《医务室的小秘密》第一季免费观. | 妈妈的新男友| 二年成全免费观看影视大全| 机械师 豆瓣| 冯德伦| 11BBB| 女朋友太骚了每次进去都觉得很| 免费观看已满十八岁电视剧高清版| 9.1国产NBA免费看电影| 《喂奶人妻厨房HD》| 特殊精油4-5HD| 人野兽马狗猪大全| 公交车被上高湖了还能坐吗小说 | 黏糊糊的你》动漫免费观看| 《一次特殊的游泳课》| 免费观看B站刺激战场2023| 两人一起做AJ的视频教程| 浏览器| 来吧儿子妈妈是纯还是混