Java Socket通信之聊天室功能
2017-12-15 13:41
676 查看
本文实例为大家分享了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编程实现简单聊天室功能 单线程执行
- 用java socket做一个聊天室,实现多人聊天的功能。
- java socket实现聊天室 java实现多人聊天功能
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- java通信二:利用Socket实现聊天室功能
- Java Socket通信—聊天室
- Android通过WIFI建立热点,通过scoket实现聊天室,文件传输等通信功能。
- Java Socket TCP 通信,实现聊天室,服务器端指定客户端发送消息
- Java Socket实现多线程通信功能示例
- 给gkermit添加串口通信功能 1
- TCPserver Tcpclient 怎么实现聊天室一起聊天的功能呢?
- 深入理解Java Socket通信
- dwr实现聊天室功能
- 图形化的电力通信资源管理系统概述与功能特点
- Android 网络:基于TCP协议通信,多线程,实现简单的C/S聊天室
- android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能
- Java Socket 通信 (三)
- 11-进程间通信-信号通信(功能:事件通知)