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

📄 chatroomserver.java

📁 java实现的聊天程序
💻 JAVA
字号:
package MyChatRoom;
import java.io.*;
import java.net.*;
import java.util.*;
public class ChatRoomServer {
	 private ServerSocket ss;
	 private Socket s;
	 private HashSet hs;
	 
	 public ChatRoomServer() {
		 try {
			ss = new ServerSocket(1804);
			hs = new HashSet();
			
			while(true) {
				s = ss.accept();
				hs.add(s);
				new ServerThread(s).start();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	 }
	 class ServerThread extends Thread {
		 private Socket s;
		 private BufferedReader br;
		 private PrintWriter pw;
		 
		 public ServerThread(Socket s) {
			 this.s = s;
			 try {
				br = new BufferedReader(new InputStreamReader(s.getInputStream()));
				pw = new PrintWriter(s.getOutputStream());
			} catch (IOException e) {
				e.printStackTrace();
			}
		 }
		 
		 public void run() {
			 while(true) {
				 String str;
				try {
					str = br.readLine();
				 if(str.charAt(0)=='%') {
					 hs.remove(s);
					 SendMessageToAllClient(str.split(":")[1]+"离开聊天室("+new Date()+")");
					 s.close();
					 break;
				 }
				 else{
					 SendMessageToAllClient(str+"("+new Date()+")");
				 }
				} catch (IOException e) {
					e.printStackTrace();
				}
			 }
		 }
		 
		 public void SendMessageToAllClient(String mesg) {
			 System.out.println(mesg);
			 Iterator it = hs.iterator();
			 while(it.hasNext()) {
				 Socket temp = (Socket)it.next();
				 try {
					PrintWriter pwTemp = new PrintWriter(temp.getOutputStream());
					pwTemp.println(mesg);
					pwTemp.flush();
				} catch (IOException e) {
					e.printStackTrace();
				}
			 }
		 }
	 }
	 public static void main(String[] args) {
		 new ChatRoomServer();
	 }
}

⌨️ 快捷键说明

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