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

📄 serverpoint.java

📁 聊天室
💻 JAVA
字号:
import java.net.*;
import java.io.*;

public class ServerPoint extends Thread{
  static int SERVERPORT=8088;
  private Socket client;
  public static int i=0;
  public static String[] vct=new String[10];  
  public ServerPoint(){}
  public void run(){
    ClientThread.log("服务器端程序启动。。。");
    try{
     ServerSocket server=new ServerSocket(SERVERPORT);
     while(true){     	
        client=server.accept();        
        ClientThread ct=new ClientThread(client);
       ct.start();
     }
   }catch(Exception e){
     e.printStackTrace();
     ClientThread.log("服务器端程序关闭。。。");
     System.exit(0);
   }
  }
  public static void main(String[] args){
  	
    ServerPoint sp=new ServerPoint();
    sp.start();
  }
  public static synchronized void message(String msg){
   	vct[i]=msg;
  	i=(i+1)%10;
  	vct[i]="*";
  	
  	}
}
class ClientThread extends Thread{  
	private static int ii=0;	
  private Socket s;
  String msg=null;
  ServerSocket serverSocket=null;
  Socket socket=null;
  BufferedReader cin=null;
  PrintWriter cout=null;  
  public ClientThread(Socket s){    
    this.s=s;   
  }
  public void run(){
    try{    	
       cin=new BufferedReader(
          new InputStreamReader(s.getInputStream()));
         
      cout=new PrintWriter(s.getOutputStream());
      SendToAll sta=new SendToAll();
      sta.start();        
      msg=cin.readLine();
      ii++;
      System.out.println("some connect us!聊天室里总共有"+ii+"个人");
      while(!msg.equals("exit")){
      	ServerPoint.message(msg);
      	msg=cin.readLine();
      	}
      	
      if(msg.equals("exit"))		
      { --ii;
      	System.out.print("someone exit\n聊天室里总共有"+ii+"个人");    		
     	cin.close();
      	cout.close();
      	s.close();      
      }    
    }catch(Exception e){
      e.printStackTrace();
    }
  }
  static void log(String strInfo){
    System.out.println(strInfo);
  }
class SendToAll extends Thread{
	private int j=-1;
	public void run(){
			while(true)
			{
				try{
					sleep(500);
					if(j==-1){
							if(!ServerPoint.vct[0].equals("*")){
								cout.println(ServerPoint.vct[0]);
								cout.flush();
								j=1;
								}
							else {
									cout.println(ServerPoint.vct[1]);
									cout.flush();
									j=2;	
									}
						}
					while(!ServerPoint.vct[j].equals("*"))
					{
						
						cout.println(ServerPoint.vct[j]);
						cout.flush();
						j=(j+1)%10;
						
						}
					}catch(Exception e){}
				}
		}
	}
}

⌨️ 快捷键说明

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