作者: 郗?f
附:服务器的实现代码
import java.net.*;
import java.io.*;
import java.awt.event.actionevent;
import java.awt.event.actionlistener;
public class talkserver
{ public static void main(string[] args)
{ try
{ file://建立服务器
serversocket server = new serversocket(9998);
int i=1;
for(;;)
{ socket incoming = server.accept()
new serverthread(incoming,i).start();
i++;
}
}catch (ioexception ex){
ex.printstacktrace();
}
}
}
class serverthread extends thread implements actionlistener
{
private int threadnum;
private socket socket;
talkserverfrm t;
bufferedreader in;
printwriter out;
private boolean talking=true;
public serverthread(socket s,int c)
{ threadnum = c;
socket = s;
}
public void actionperformed(actionevent e)
{ object source = e.getsource();
try{
if(source==t.btnsend)
{ out.println(t.gettalk());
t.cleartalk();
}else
if(source==t.btnend)
{ out.println("谈话过程被对方终止");
out.close();
in.close();
talking = false;
}
}catch(ioexception ex){
}
}
public void run()
{ try{
t=new talkserverfrm(new integer(threadnum).tostring(),this);
t.setsize(500,500);
t.show();
in = new bufferedreader(new
inputstreamreader(socket.getinputstream()));
out = new printwriter(socket.getoutputstream(),true);
}catch(exception e){
}
new thread()
{ public void run()
{ try{
while(true)
{ checkinput();
sleep(1000);
}
}catch (interruptedexception ex){
}catch(ioexception ex){
}
}
}.start();
while(talking)
{ }
t.dispose();
}
private void checkinput() throws ioexception
{ string line;
if((line=in.readline())!=null)
t.setpartner(line); file://这是界面类里的方法,
file://用来将line的内容输出到用户界面
}
}
闽公网安备 35060202000074号