首页 > 开发 > Java > 正文

Java Socket通信之聊天室功能

2024-07-13 10:14:44
字体:
来源:转载
供稿:网友

本文实例为大家分享了Java Socket聊天室功能的具体代码,供大家参考,具体内容如下

Client.java

import java.io.*; import java.net.*; import java.util.*;  public class Client {  public int port = 8083;  Socket socket = null;   public static void main(String[] args) {   new Client(); //开始执行  }   public Client() {    try {    socket = new Socket("127.0.0.1", port);    new Cthread().start();     BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));    String msg1;    while ((msg1 = br.readLine()) != null) {     System.out.println(msg1);    }   } catch (Exception e) {   }  }   class Cthread extends Thread {    public void run() {    try {      BufferedReader re = new BufferedReader(new InputStreamReader(System.in));     PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);     String msg2;      while (true) {       msg2 = re.readLine();      pw.println(msg2);     }    } catch (Exception e) {     e.printStackTrace();    }    }  }  } 

Server.java

import java.net.*; import java.io.*; import java.util.*;  public class Server {   int port;   List<Socket> clients;   ServerSocket server;   public Server() {     try {       port = 8083;       clients = new ArrayList<Socket>();       server = new ServerSocket(port);       System.out.println("服务器已启动");       int co=1;       while (true) {         Socket socket = server.accept();         clients.add(socket);         Mythread mythread = new Mythread(socket,co);         co++;         mythread.start();       }      } catch (Exception ex) {       System.out.println("vv");     }   }    public static void main(String[] args) {     new Server();   }    class Mythread extends Thread {     Socket ssocket;     private int count;     private BufferedReader br;     private PrintWriter pw;     public String msg;      public Mythread(Socket s,int c) {       ssocket = s;       count=c;     }      public void run() {        try {         br = new BufferedReader(new InputStreamReader(ssocket.getInputStream()));                  msg = "欢迎【" +"Client "+count + "】进入聊天室!当前聊天室有【" + clients.size() + "】人";          sendMsg();          while ((msg = br.readLine()) != null) {                      msg = "【" +"Client "+count + "】说:" + msg;           sendMsg();          }       } catch (Exception ex) {       }     }     public void sendMsg() {       try {         System.out.println(msg);          for (int i = clients.size() - 1; i >= 0; i--) {           pw = new PrintWriter(clients.get(i).getOutputStream(), true);           pw.println(msg);           pw.flush();         }       } catch (Exception ex) {       }     }   }  } 

运行结果:

Java,Socket,聊天室

Java,Socket,聊天室

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表