知识大全 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

相关参考

知识大全 使用NIO实现非阻塞Socket通信(2)[2]

疯狂Java讲义:使用NIO实现非阻塞Socket通信(2)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 使用NIO实现非阻塞Socket通信(2)[1]

疯狂Java讲义:使用NIO实现非阻塞Socket通信(2)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 一个Java 的 Socket 服务器和客户端通信的例子

一个Java的Socket服务器和客户端通信的例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 运用异步输入输出流编写Socket进程通信

运用异步输入输出流编写Socket进程通信  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  杨健(

知识大全 IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式

IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 一个最简单的Socket通信例子

一个最简单的Socket通信例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  所谓socket

知识大全 Java的socket通信的demo

Java的socket通信的demo  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java代码

知识大全 Java Socket通信读取相关信息代码

JavaSocket通信读取相关信息代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java

知识大全 Java Socket通信Flash编程技巧

JavaSocket通信Flash编程技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jav

知识大全 Java Socket通信如何摆平自身端口问题

JavaSocket通信如何摆平自身端口问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Ja