各位大侠,我是一名Java初学者,现在正在学着做聊天的程序
遇到一个问题
服务端:
点击开始按钮
开始监听
然后点击结束就可以直接停止
可是开始监听是的一个阻塞过程,一旦开始监听,就不能点击结束按钮不知道怎么解决
我用过线程,不过好像不对
请大侠给个思路

解决方案 »

  1.   

    可能我表述的不是很清楚,我想服务器就只有两个按钮
    一个是开始按钮,另一个是结束按钮
    开始则开始服务,结束则停止服务
    在开始服务里面我的代码是:
    serversock和sthread是已经进行定义的:sthread是产生socket类
                      
                      serversock=new ServerSocket(1680);
                    
                      try
    {       
            sthread=new Socketthread(serversock);
    t=new Thread(sthread);
    t.start();
    }
    catch(IOException e)
    {
    System.out.println("StartServer Wrong");
    }//--------------------------
    class Socketthread implements Runnable
    {
    ServerSocket sersock;
    boolean flag=false;
    Socketthread(ServerSocket ssocket)
    {
    sersock=ssocket;
    flag=true;
    }
    public void run()
    {
    if(flag==false)
    {
    System.out.println("Stop Here");
    return;
    }
    try
    {
    Socket sock=sersock.accept();
    String fip[]=new String[2];
    String fname[]=new String[2];
    fip[0]="1";
    fip[1]="2";
    fname[0]="11";
    fname[1]="22";

    frienddata fdata=new frienddata(1,new Date(),fip,fname);
    friendsmess fmess=new friendsmess(fdata);


    OutputStream os=sock.getOutputStream();
    //InputStream is=sock.getInputStream();
    ObjectOutputStream oos=new ObjectOutputStream(os);
    //ObjectInputStream ois=new ObjectInputStream(is);
    oos.writeObject(fmess);
    }
    catch(IOException e)
    {
    System.out.println("Listen Wrong");
    }
    }
    }然后我想按停止按钮就停止服务,不知道该怎么做,上面是通过flag来设定,不过不行的,错了,不知道用什么思路