server.java

来自「一个java聊天程序。很简单的版本」· Java 代码 · 共 65 行

JAVA
65
字号
package aa;

import java.net.*;
import java.io.*;
public class Server {
	public static void main(String[] args) {
		new ListenerService().start();
    }
}

class ListenerService extends Thread{
	boolean flag=true;
	ServerSocket s;
	public ListenerService(){
		try{
			s=new ServerSocket(9999);
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
	}
	public void run(){
		System.out.println("begin to listen...");
		while(flag){
			try{
				Socket c=s.accept();
				System.out.println("client hostname='"+c.getInetAddress().getHostName()+"' connected.");
				new Service(c).start();
			}catch(Exception e){
				System.out.println(e.getMessage());
				break;
			}
		}
	}
   

}
class Service extends Thread{
	Socket sock;
	BufferedReader br;
	PrintWriter pw;
	public Service(Socket c){
		sock=c;
		try{
			br=new BufferedReader(new InputStreamReader(sock.getInputStream()));
			pw=new PrintWriter(new OutputStreamWriter(sock.getOutputStream()),true);
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
	}
	public void run(){
		while(true){
			try{
				String s=br.readLine();
				if(s==null || s.equals("bye")){
					break;
				}
				System.out.println("got a message from client: '"+s+"'");
				pw.println(s);
			}catch(Exception e){
				System.out.println(e.getMessage());
				break;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?