java socket编程聊天室_Java Socket通信之聊天室功能
Java Socket通信之聊天室功能
发布时间:2020-10-17 14:36:00
来源:脚本之家
阅读:73
作者:LY_624
本文实例为大家分享了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 clients;
ServerSocket server;
public Server() {
try {
port = 8083;
clients = new ArrayList();
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网络编程,通过TCP,Socket实现多对一的局域网聊天室
java网络编程,通过TCP,Socket实现多对一的局域网聊天室 可以实现多个客户端连接服务器,服务器接收到信息就会把信息广播到所有的客户端 这是服务器端的代码 View Code import j ...
- 使用java网络编程模拟简单网络即时通信
使用java网络编程模拟简单网络即时通信 通信流程图: 解析: 1.在上图中我们可以看出对于任何一个客户端,都由两部分构成,发送端和接收端(分别由两个线程来维系) 2.客户端在每一次请求链接时都会轮询 ...
- 【Java高级】初探socket编程 ——JavaSocket连接与简单通信
新学期生活开始一段时间了,要继续学习一些新的技术(这里指socket /doge),目标是尝试完成一个在线即时聊天的小程序(尽量不咕).会更新一系列socket编程的技术文章,欢迎关注交流~ 那么千里 ...
- java socket 重连复用_Java Socket编程基础及深入讲解(示例代码)
Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...
- java socket数据传输_Java Socket编程(一) Socket传输模式
Java Socket编程(一) Socket传输模式 文章来源:ASPCN 作者:孙雯 Socket传输模式 Sockets有两种主要的操作方式:面向连接的和无连接的.面向连接的sockets操作就 ...
- linux java socket编程_深入学习socket网络编程,以java语言为例
了解java的socket编程与Linux Socket API之间的关系 一.java的网络编程 1.socket原理 socket通信就是通过IP和端口号将两台主机建立连接,提供通信.主机A的应用 ...
- Java网络编程(一)Socket套接字
一.基础知识 1.TCP:传输控制协议. 2.UDP:用户数据报协议. 二.IP地址封装 1.InetAddress类的常用方法 getLocalHost() 返回本地主机的InetAddress对象 ...
- 基于MFC的socket编程(异步非阻塞通信)
对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手.许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其 ...
- 【java网络编程】用TCP socket实现多线程图片上传
单线程上传 服务端: 客户端: 多线程上传 修改服务端: 修改客户端 单线程上传 服务端: public static void main(String[] args) {try ( // 创建一个S ...
最新文章
- R语言循环中break函数和next函数使用实战
- linux中iso文件怎么安装系统文件,我有linux的iso文件,要怎么安装系统
- 春运又在路上了,火车购票、出行指南了解一下!
- 将四个整数进行从小到大的顺序排列 java_07_Java基础语法_第7天(练习)_讲义(练习加强+在eclipse中实现)...
- 显微镜自动聚焦原理是什么_什么是共聚焦显微镜?你了解过共聚焦显微镜吗?...
- python 元组比较大小_为什么元组比列表更快?
- oracle存储过程更新权限不足,oracle创建存储过程时报权限不足
- (待补充)【读书笔记】20190816《码农翻身》——刘欣
- java中awt和swing是什么关系
- 赏金猎人:德州堕胎法案 | 经济学人早报精选20210902
- 两步就能使用pyqt制作软件界面,写一个基于you-get的windows端app
- CSP-S 2020 儒略日
- 小米将在武汉建1万人研发中心
- 数仓建设保姆级教程,离线和实时理论+实战)
- CG cosh, exp, sinh, smoothstep, tanh, perlin_easeCurve1/2 曲线
- 算法设计与分析------蛮力法
- numpy(逻辑函数与数学函数)
- 大争之世智造为基,瑞科智能将亮相第21届SIMM深圳机械展
- Unity实现 场景切换 音乐不断
- 八道超经典指针面试题(三千字详解)
热门文章
- 由于这台计算机没有终端服务器客户端访问许可证,远程会话被中断解决办法...
- 使用Remoting技术
- php ajax mysql 分页查询_PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
- java 调用linux 脚本并获取返回值
- android studio 导入依赖报错——Could not find com.xxx,(# fields: 66338 > 65536)
- Android 活体人脸实时采集,百度、虹软
- vue时间过滤器filter
- 学校计算机二级模拟上机能看分数吗,全国计算机二级考试机试考完怎么储存的...
- 数据库的垂直切分和水平切分
- Linux文件权限一共10位长度,分成四段,每段的含义