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即可实现循环的心跳发送
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,892评论 25 709
  • 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch...
    阳光的大男孩儿阅读 10,474评论 0 13
  • iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 cocoa AsyncSocket库,用它...
    Ethan_Struggle阅读 6,700评论 2 12
  • 现在的信息太快太多,好的坏的心中都有了结果。一味的期盼着好的,一味的拒绝着坏的。忙着看外界,忙着想自己,却对身边冷...
    xyxcr阅读 1,371评论 0 4
  • 一日与俩闺蜜刀疤(唠叨八卦)。 A抛出这么个问题:“你们说早婚早育好,还是晚婚晚育好?” “此题无解”。B答。 “...
    圣掿凡阅读 4,661评论 0 1