zoukankan      html  css  js  c++  java
  • socket之多线程-开发笔记

    需求是,一个客户端对应多服务器。我能想到的就是多线程,采用线程池来管理多线程。线程组中的每个线程都有一个socket对象来操控流。
    • 多线程控制的方法
    List<SocketThread> tlist = new ArrayList<SocketThread>();//收集创建的线程的集合
    
    SocketThreadt = new SocketThread();//新建的用来处理逻辑的线程,构造方法中传必要的参数
    
    ThreadPoolManager.getInstance().execute(t);//线程池管理线程
    
    tlist.add(t);//收集工作的线程,以便于后期方便取出线程中对应的socket对象
    
    • socketThread—socket线程
    /**socket建立连接**/
    SocketAddress address = new InetSocketAddress(ip, port);
    Socket  mSocket = new Socket(); 
    try {
    mSocket.setTcpNoDelay(false);
    mSocket.setKeepAlive(true);
    mSocket.connect(address, 15 * 1000);
    InputStream mInputStream = mSocket.getInputStream();
    OutputStream mOutputStream = mSocket.getOutputStream();
    } catch (IOException e) {
    // TODO Auto-generated catch block
       e.printStackTrace();
            }
    //其他的工作就是操作流,发包、拆包,这两个操作也可以使用线程维持,实现双工通讯
    
    • 维持心跳:在每个SocketThreat中维持其对应的socket对象的心跳,亲测有效
    andeoid中使用Handler即可实现循环的心跳发送
    
    天会亮就会黑 我早就习惯
  • 相关阅读:
    分治
    递归
    java三大特性之封装
    Java基础知识
    puk2367 拓扑排序
    puk1251 最小生成树
    puk1521 赫夫曼树编码
    DOSbox简单运行操作
    Mybatis初学经验----------------(2)
    mysql存储引擎MyISAM和InnoDB的区别
  • 原文地址:https://www.cnblogs.com/ltzuo/p/12159015.html
Copyright © 2011-2022 走看看