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即可实现循环的心跳发送
    
    天会亮就会黑 我早就习惯
  • 相关阅读:
    Advanced Configuration Tricks
    Reviewing the Blog Module
    Editing and Deleting Data
    Making Use of Forms and Fieldsets
    Understanding the Router
    SQL Abstraction and Object Hydration
    Preparing for Different Databases
    Java学习理解路线图
    Openstack学习历程_1_视频
    CentOS安装Nginx负载
  • 原文地址:https://www.cnblogs.com/ltzuo/p/12159015.html
Copyright © 2011-2022 走看看