创建了一个ServerSocket对象.通过accept()方法监听得到一个Socket连接,将这个Socket(假设命名sock_0)做为参数启动一个线程类实例thd-0,处理通讯活动;同理可得到另一个Socket连接(假设命名sock_n),也启动了一个thd-n.在thd-n的通讯中获得信息,经判断后需关闭sock_0的通讯,结束thd-0;并且在sock_0中向客户端发送一条提示信息.
现在线程的独立运行都不是问题,就是获得信息后控制另一个线程发送提示和关闭不知道怎么弄?请师兄们帮忙!!

解决方案 »

  1.   

    import java.io.*;
    import java.net.*;public class ClientEntity implements Runnable{
      private Socket socket;
      private PrintWriter writer;
      private Thread thread = null;
      
      public ClientEntity(Socket s) throws IOException{
        this.socket = s;
        writer = new PrintWriter(socket.getOutputStream());
        thread = new Thread(this);
        thread.start();
      }
      
      public void run(){
        while(thread == Thread.currentThread()){
          
        }
      }
      
      public void close() throws IOException{
        writer.println("Server is closing the connection.");
        try{
          socket.close();
        }
        finally{
          thread = null;
        }
      }
    }
      

  2.   

    ok,这个close方法可以关闭本身.但在另一个线程(thd-n)中如何调用呢?在thd-n中要关闭的是thd-0或thd-m,就是多线程中一个线程关闭另一个线程的问题.谢谢!
      

  3.   

    在thd-n中要关闭的是thd-0或thd-m,就是多线程中一个线程关闭另一个线程的问题你要得到它的对象才能关闭,一般线程间的通讯都是用的wait,notify来实现的