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即可实现循环的心跳发送
    
    天会亮就会黑 我早就习惯
  • 相关阅读:
    周总结博客07
    河北重大技术需求系统05
    php面向对象中的魔术方法
    用Kotlin开发Android应用(II):创建新项目
    Android APP性能分析方法及工具
    php基础
    jQuery总结
    css总结
    PHP运算符优先级(摘自在线工具)
    PHPExcel导出excel表格
  • 原文地址:https://www.cnblogs.com/ltzuo/p/12159015.html
Copyright © 2011-2022 走看看