知识大全 Java NIO(异步IO)Socket通信例子
Posted 知
篇首语:卧疾丰暇豫,翰墨时间作。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java NIO(异步IO)Socket通信例子相关的知识,希望对你有一定的参考价值。
Java NIO(异步IO)Socket通信例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
//Java NIO (异步IO)Socket通信例子:
服务器代码:
import *;
import java nio *;
import java nio channels *;
import java util *;
public class server
ServerSocketChannel ssc ;
public void start()
try
Selector selector = Selector open();
ServerSocketChannel ssc=ServerSocketChannel open();
nfigureBlocking(false);
ServerSocket ss=ssc socket();
InetSocketAddress address = new InetSocketAddress( );
ss bind(address);
ssc register(selector SelectionKey OP_ACCEPT);
System out println( 端口注册完毕! );
while(true)
selector select();
Set<SelectionKey> selectionKeys=selector selectedKeys();
Iterator<SelectionKey> iter=erator();
ByteBuffer echoBuffer=ByteBuffer allocate( );
SocketChannel sc;
while(iter hasNext())
SelectionKey key=iter next();
if((key readyOps()&SelectionKey OP_ACCEPT)==SelectionKey OP_ACCEPT)
ServerSocketChannel subssc=(ServerSocketChannel)key channel();
sc=subssc accept();
nfigureBlocking(false);
sc register(selector SelectionKey OP_READ);
iter remove();
System out println( 有新连接: +sc);
else if((key readyOps()&SelectionKey OP_READ)==SelectionKey OP_READ)
sc=(SocketChannel) key channel();
while(true)
echoBuffer clear();
int a;
try
a=sc read(echoBuffer);
catch(Exception e)
e printStackTrace();
break;
if(a== ) break;
if(a> )
byte[] b=echoBuffer array();
System out println( 接收数据: +new String(b));
echoBuffer flip();
sc write(echoBuffer);
System out println( 返回数据: +new String(b));
sc close();
System out println( 连接结束 );
System out println( ============================= );
iter remove();
catch (Exception e)
e printStackTrace();
客户端代码:
import *;
import java nio *;
import java nio channels *;
public class client
public void start()
try
SocketAddress address = new InetSocketAddress( localhost );
SocketChannel client=SocketChannel open(address);
nfigureBlocking(false);
String a= asdasdasdasddffasfas ;
ByteBuffer buffer=ByteBuffer allocate( );
buffer put(a getBytes());
buffer clear();
int d=client write(buffer);
System out println( 发送数据: +new String(buffer array()));
while(true)
buffer flip();
int i=client read(buffer);
if(i> )
byte[] b=buffer array();
System out println( 接收数据: +new String(b));
client close();
System out println( 连接关闭! );
break;
catch(Exception e)
e printStackTrace();
cha138/Article/program/Java/hx/201311/25874
相关参考
疯狂Java讲义:使用NIO实现非阻塞Socket通信(2)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
疯狂Java讲义:使用NIO实现非阻塞Socket通信(2)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
知识大全 一个Java 的 Socket 服务器和客户端通信的例子
一个Java的Socket服务器和客户端通信的例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
运用异步输入输出流编写Socket进程通信 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 杨健(
知识大全 IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式
IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
一个最简单的Socket通信例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 所谓socket
Java的socket通信的demo 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java代码
JavaSocket通信读取相关信息代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java
JavaSocket通信Flash编程技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Jav
JavaSocket通信如何摆平自身端口问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Ja