完成一个有图形界面的客户端和服务器端,服务器端每隔5秒向客户端发送时间日期,客户端打印到显示区域,当服务器收到客户端的“quit”时服务器将客户端的链接时常发送给客户端,并关闭客户端。现在小弟只是将服务器可以通过客户端连接按钮调动线程,通过线程对socket每隔5秒发送时间到客户端,但是现在还需要通过断开按钮向服务器发送“quit”命令。但是我只用了一个socket并且是通过线程的,现在断开按钮要怎么设置才能给服务器发送“quit”命令。
    我的链接按钮和断开按钮都是使用的线程,线程用的又是有参数的(socket,框架)现在就是在断开按钮怎么调用socket,百思不得其解,如果有大侠有哪点小弟说的不清楚的请问我!!!

解决方案 »

  1.   

    按照你这个需求,完全没必要向服务器端发送“quit”命令。客户端直接关闭连接然后退出就行了,服务器端就可以从连接已经被close得知:客户端已经quit了。所以发送“quit”命令有点多此一举。
      

  2.   

    问题是要服务器向客户端发送链接时长,要是客户端直接退出就不能从客户端看见链接时常了!我是想点断开按钮可以将socket关闭,但是不知道怎么做?
      

  3.   

    服务端监听到quit,
    调用socket.close();
    调用socketThread.destroy();
      

  4.   

    if(s.isClosed()){      System.out.println("断开的测试1!");
    long end = System.currentTimeMillis(); p.setText("链接用时"+(end-start)+"毫秒"); p.setText("客户端正常关闭!");
    }
    我把客户机用System.exit(0)全部断开,客户机这边的socket应该就断开了,然后我在服务器这边用以上的指令(s是socket),为什么不能执行这些程序!求大虾帮忙!
      

  5.   

    System.exit(0) 就是客户端直接退出程序了。服务端此时再执行read,应该就会read到null,那么就说明连接关闭了。不知道你这语句的上线文,没法详细说了。