国产成人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~4集免费看| 高三妈妈用性缓解孩子压力| 女士泳衣全透明| 《麦子的秘密2》在线观看| 双乳被四个男人吃奶动态图| 舌头底下舔着有小硬疙瘩视频| 摸摸大扔子图片真实| 伦理《少妇的滋味》完整版| 《朋友的未婚妻》| 强伦女教师2:伦理| 舒淇与黑人性猛交| 公在厨房撕开奶罩吸奶头| 正阳门下电视剧全集免费观看| 9.1国外黄冈B站| 初中生兄弟互相导管立的经历| 一个下面添一个上面是什么字| 玉蒲团之官人我要| 免费的行情网站WWW网页版| 姐姐动漫在线观看动浸第8集| 少女国产免费观看高清电视剧| 俄罗斯大扔子视频观看| 被室友男朋友认错后BY阿司匹林| 老公咬我小头头疼了好几天| 《合租男女》电视剧韩国| 两个奶头被吃得又翘又肿特别疼 | 法国空姐| 《爸开车我抱着妈妈去姥姥家》 | 性别饥饿妈妈| 成色P31S是国精产品吗| 周翊然| 《玉浦困之初入桃花之风雨山应》….| 依卡| 父女一起到达巅峰的小说| 三男一女CP免费观看电视剧大全| 19岁大学生少女免费观看电视剧| 道具调教自慰颤抖呻吟AV| 老公水我B里骚水流出来了| 公交车上被蹭水后多久自然恢复| 摄影师把我的奶头掏出来了| 主人请好好疼爱里面动画第二季