📄 multithreadserverdemo.java
字号:
import java.net.*;
import java.io.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MultiThreadServerDemo{
public static void main(String[] args){
try{ //建立服务器
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);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -