server.java

来自「这段代码的功能是:建立一个服务器,用于交换客户端之间的信息.」· Java 代码 · 共 114 行

JAVA
114
字号
import java.net.*;import java.io.*;import java.util.*;class Subserver extends Thread implements Runnable{	Socket clientSocket;	PrintWriter out = null;    BufferedReader in = null;    static Map a=new HashMap();    	Subserver(Socket serverSocket){		clientSocket=serverSocket;				try {			//static Map a=new HashMap();        out = new PrintWriter(clientSocket.getOutputStream(), true);        //a.put("you",out);        in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));    } catch (IOException e) {        System.err.println("Accept failed.");        System.exit(1);				}			    }    //out.println(fromUser);        //serverSocket.close();		 public void run(){		System.out.println("server");	String fromUser;	String s="you";    int strlen;    String from="noname";        try{        fromUser= in.readLine();       from=fromUser;       //System.out.println("server"+fromUser);       a.put((String)fromUser,out);       //System.out.println("server"+a.size());        }          catch(IOException e){}       try {                sleep( 1000);            } catch (InterruptedException e) {}    while (true) {       try{        fromUser= in.readLine();      // System.out.println("server"+fromUser);       if((char)fromUser.charAt(0)=='$'){s=fromUser.substring(1);       //((PrintWriter)a.get(s)).println(s);       }        strlen=fromUser.length();        //out.println("");        //out.println("received string's length is: "+strlen);        ((PrintWriter)a.get(s)).println("");        ((PrintWriter)a.get(s)).println("from:"+from+"    "+fromUser);                if(fromUser.equalsIgnoreCase("Bye"))          break;}          catch(IOException e){}       try {                sleep( 1000);            } catch (InterruptedException e) {}          }          //out.close();    try{in.close();    out.close();    clientSocket.close();    //serverSocket.close();    }    catch(IOException e){}	}		}	class Listen extends Thread{	ServerSocket serverSocket = null;	public void run()	{							System.out.println("server");			try {	System.out.println("server");      serverSocket= new ServerSocket(4444);      System.out.println("server");    } catch (IOException e) {       System.err.println("Could not listen on port: 4444.");       System.exit(1);    }    while(true){       try{ (new Subserver(serverSocket.accept())).start();   System.out.println("server");}catch(IOException e){}}		}	}public class Server {	public static void main(String[] args) throws IOException	{		Listen a=new  Listen();		a.start();		}}

⌨️ 快捷键说明

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