java NIO SocketClinet和ServerSocket的实例用法
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"java NIO SocketClinet和ServerSocket的实例用法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些
千家信息网最后更新 2026年11月03日java NIO SocketClinet和ServerSocket的实例用法
本篇内容介绍了"java NIO SocketClinet和ServerSocket的实例用法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
//SocketClient.java//---------------------------------------------------------------------------------package niotest;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.SocketChannel;import java.util.Iterator;import java.util.Set;public class SocketClient {public static void main(String[] args) throws IOException {Selector sc = Selector.open();SocketChannel skc = SocketChannel.open();skc.configureBlocking(false);skc.connect(new InetSocketAddress("127.0.0.1", 44444));skc.register(sc, SelectionKey.OP_CONNECT);while(true) {sc.select();Set selectkey = sc.selectedKeys();Iterator it = selectkey.iterator();while(it.hasNext()) {SelectionKey key = (SelectionKey) it.next();if(key.isConnectable()) {SocketChannel msk = (SocketChannel) key.channel();if(!msk.isConnected()) {while(!msk.finishConnect()) {}}msk.register(sc, SelectionKey.OP_WRITE);}else if (key.isReadable()) { }else if(key.isWritable()) {SocketChannel msk = (SocketChannel) key.channel();ByteBuffer bb = ByteBuffer.wrap(new String("hellow world!").getBytes());msk.write(bb);while (bb.hasRemaining()){msk.write(bb);}key.cancel();}else if(key.isAcceptable()) {}else {throw new RuntimeException("unknow selection type!");}it.remove();}}}}//SocketServer.java//----------------------------------------------------------------------------------------------------------package niotest;import java.io.IOException;import java.net.InetSocketAddress;import java.net.SocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSocketChannel;import java.nio.channels.SocketChannel;import java.util.Iterator;import java.util.Set;public class SocketServer {public static void main(String[] args) throws Exception {ServerSocketChannel sc = ServerSocketChannel.open();sc.configureBlocking(false);sc.bind(new InetSocketAddress(44444));Selector tor = Selector.open();sc.register(tor, SelectionKey.OP_ACCEPT);while(true) {tor.select();Set selectkey = tor.selectedKeys();Iterator it = selectkey.iterator();while(it.hasNext()) {SelectionKey key = (SelectionKey) it.next();if(key.isAcceptable()) {ServerSocketChannel msk = (ServerSocketChannel) key.channel();SocketChannel msc = msk.accept();msc.configureBlocking(false);msc.register(tor, SelectionKey.OP_READ);}else if(key.isConnectable()) {}else if (key.isWritable()) {}else if(key.isReadable()) {SocketChannel msc = (SocketChannel) key.channel();ByteBuffer bb = ByteBuffer.allocate(17);while(bb.hasRemaining()) {msc.read(bb);}System.out.println("服务端:"+new String(bb.array()));}else {throw new RuntimeException("unknow selection!");}it.remove();}}}} "java NIO SocketClinet和ServerSocket的实例用法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
实例
内容
更多
知识
实用
学有所成
接下来
困境
实际
情况
文章
案例
编带
网站
行业
过程
高质量
学习
有关
服务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
苏州找大状互联网科技有限公司
互联网和科技技术
科技互联网政务服务
科技互联网技术
金融科技创新监管互联网金融
合肥互联网科技公司
美国互联网前沿科技
安控科技rtu产品工业互联网
互联网科技公司需要的职位
互联网经济与金融科技
注册互联网科技公司经营范围大全
东莞新华互联网科技学校
晋城互联网科技
工业互联网等科技实现智能化赋能
明优互联网科技有限公司
互联网风格科技公司名称
互联网硬科技公司
互联网时代科技型公司的机会
银川新华互联网科技学校原画
马化腾互联网科技教学
新华互联网科技学院
科技互联网创业计划书
江苏南京365互联网科技
苏州铭阳互联网科技有限公司
用友工业互联网科技发展
群盈汇互联网科技有限公司
山东子淼互联网科技有限公司
山东大美朱楼互联网科技有限公司
济南小医互联网科技有限公司招聘
颐高云石互联网科技