最近碰到一个棘手的问题(对我来说:( )。有两个多线程(socket1,socket2)默认情况下都已经开启,socket1监听client1,得到“start”,“stop”,“1001”,“1002”当中的一条信息,当得到“start”时socket1执行启动socket2服务,当得到“stop”时执行停止socket2服务。请问socket2该怎么监听socket1发送的信息。

解决方案 »

  1.   

    看起来其中一个线程是用来服务器关闭,启动之用。另一个线程是提供服务的。(有点像TOMCAT的结构)切入回答:
    你的完全以socket驱动服务的思考是错误的。顺着来想,启动服务的时候启动两个分支(即两个线程),启动服务线程的时候,把该线程对象的引用(thread1)保存到线程能访问到的地方,这样,直接对这个线程操作就行了。如stop命令,调用thread1.stop();
      

  2.   

    多谢焕兄提点,但还是有个地方不懂,“启动服务线程的时候,把该线程对象的引用(thread1)保存到线程能访问到的地方,这样,直接对这个线程操作就行了。”这句话的意思是不是把thread1得到的信息保存在一个thread2能访问到的地方?那thread1所得到的信息是经常变化的啊,该怎么处理呢。