国产成人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电脑。

关注

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

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

小孩把钢筋喂给班主任视频| 免费观看《艳乳欲乱2》| 《我的漂亮朋友》20点首播| 肥熟韵母| 疯狂精力旺盛的女婿小说免费阅读| 东北老阿姨高清免费观看电视剧 | 公司企业文化展示墙| 机械师| 少妇大屁股白浆流出白浆| 11人裸体航班女服务员是谁| 打扑克不盖被子| 快乐8| 停不了的爱温碧霞| 98在线高清免费观看电视剧狂飙 | 《蜜桃成熟时》无删减版| 小妹妹爱大棒棒免费观看电视剧一| 九九在线观看免费播放大全电视剧| 五姑娘影院在线观看免费版电视剧 | 大肉蟒撑开稚嫩紧窄| ZHONGHANLIANG| 窝窝影院在线观看免费播放电视剧 | 新婚夜被强伦无删减版| 成品PPT网站大片入口| 《伦敦空姐美版2023》| WWW.77.GOVCN| 粘液共生1~3集免费观看动漫| 《熟妇的荡欲》HD中字| 日本无码A片人妻久尤物明理紬| 成品人和精品人的区别9点| 女同学裸睡我把她奶头摸硬了| 狼人加鲁鲁兽天赋澳彩心水 | 《年轻朋友的妻子3》| 小叔子从后面抱住女主电视剧| 《性呻吟》伦理| 国产精品亚洲AV三区八戒漫画| 羞羞漫画| 翁吻乳婷婷小玲21章| 边啃奶头一边躁狂会怎么样| 蜜桃浏览器| 保姆的特殊待遇5| 在线观看免费观看在线NBA