任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

Android开发进阶之NIO非阻塞包(四) Android开发技术

   今天我们通过一个实例详细讲解下Android下NIO非阻塞服务器的开发,对于客户端而言Android123不推荐使用NIO,毕竟NIO相对于传统IO较为复杂,最重要的NIO是为了解决多线程并发问题而解决的技术,可能会因为管理和复杂性降低最终的结果,毕竟NIO是Java的,相关的类型比较难控制,对于客户端而言我们可以使用C++、Java、C#甚至Flash Action Script来编写。     下面我们以一个简单的Echo Server为例子来分析  import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.CharBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSocketChannel;import java.nio.channels.SocketChannel;import java.nio.charset.Charset;import java.nio.charset.CharsetDecoder;import java.nio.charset.CharsetEncoder;import java.util.Iterator; public class Server {  public static void main(String[] args) {  Selector selector = null;  ServerSocketChannel ssc = null;  try {      selector = Selector.open(); //实例化selector      ssc = ServerSocketChannel.open(); //实例化ServerSocketChannel 对象       ssc.socket().bind(new InetSocketAddress(1987)); //绑定端口为1987       ssc.configureBlocking(false); //设置为非阻塞模式      ssc.register(selector, SelectionKey.OP_ACCEPT); //注册关心的事件,对于Server来说主要是accpet了     while (true) {   […]

Android开发进阶之NIO非阻塞包(八) Android开发技术

   在整个DDMS中体现Android NIO主要框架的要数MonitorThread.java这个文件了,有关PC和Android手机同步以及NIO非阻塞编程的精髓可以在下面的文件中充分体现出来。   final class MonitorThread extends Thread {     private static final int CLIENT_READY = 2;     private static final int CLIENT_DISCONNECTED = 3;     private volatile boolean mQuit = false;     private ArrayList<Client> mClientList; //用一个数组保存客户端信息     private Selector mSelector;     private HashMap<Integer, ChunkHandler> mHandlerMap; //这里Android123提示大家,由于在多线程中concurrentHashMap效率比HashMap更安全高效,推荐使用并发库的这个替代版本。     private ServerSocketChannel mDebugSelectedChan; //一个用于调试的服务器通道     private […]

100% Secure Checkout

PayPal / MasterCard / Visa