⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multithreadserverdemo.java

📁 java经典10例子
💻 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 + -