各位大侠,我是一名Java初学者,现在正在学着做聊天的程序
遇到一个问题
服务端:
点击开始按钮
开始监听
然后点击结束就可以直接停止
可是开始监听是的一个阻塞过程,一旦开始监听,就不能点击结束按钮不知道怎么解决
我用过线程,不过好像不对
请大侠给个思路
遇到一个问题
服务端:
点击开始按钮
开始监听
然后点击结束就可以直接停止
可是开始监听是的一个阻塞过程,一旦开始监听,就不能点击结束按钮不知道怎么解决
我用过线程,不过好像不对
请大侠给个思路
一个是开始按钮,另一个是结束按钮
开始则开始服务,结束则停止服务
在开始服务里面我的代码是:
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来设定,不过不行的,错了,不知道用什么思路