Java实现在线聊天功能
作者:Lete乐特 时间:2021-10-18 22:16:23
本文实例为大家分享了Java实现在线聊天功能的具体代码,供大家参考,具体内容如下
效果
关键代码
创建Client.java
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* @author Lete
* @乐特的程序永无BUG
* @createDate 2020- 07-04 22:13
*
* 1. SendThread 发送消息线程
* 2. RecieveThread 接受消息线程
*/
public class Client {
public static void main(String[] args) {
try {
// 创建8888端口
Socket s = new Socket("127.0.0.1", 8888);
// 启动发送消息线程
new SendThread(s).start();
// 启动接受消息线程
new RecieveThread(s).start();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
创建Server.java
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author Lete
* @乐特的程序永无BUG
* @createDate 2020- 07-04 22:13
*
* 1. SendThread 发送消息线程
* 2. RecieveThread 接受消息线程
*/
public class Server {
public static void main(String[] args) {
try {
// 监听8888端口
ServerSocket ss = new ServerSocket(8888);
System.out.println("监听在端口号:8888");
Socket s = ss.accept();
//启动发送消息线程
new SendThread(s).start();
//启动接受消息线程
new RecieveThread(s).start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
创建RecieveThread.java
import java.io.*;
import java.net.Socket;
/**
* @author Lete
* @乐特的程序永无BUG
* @createDate 2020- 07-04 22:13
*
* 1. SendThread 发送消息线程
* 2. RecieveThread 接受消息线程
*/
public class RecieveThread extends Thread {
private Socket s;
public RecieveThread(Socket s) {
this.s = s;
}
public void run() {
try {
// 接收对方输入的内容
InputStream is = s.getInputStream();
DataInputStream dis = new DataInputStream(is);
while (true) {
String msg = dis.readUTF();
System.out.println(msg);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
创建SendThread.java
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
/**
* @author Lete
* @乐特的程序永无BUG
* @createDate 2020- 07-04 22:13
*
* 1. SendThread 发送消息线程
* 2. RecieveThread 接受消息线程
*/
public class SendThread extends Thread {
private Socket s;
public SendThread(Socket s) {
this.s = s;
}
public void run() {
try {
// 获取输入的内容
OutputStream os = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
while (true) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
dos.writeUTF(str);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
来源:https://blog.csdn.net/Lott0419/article/details/107221907
标签:Java,在线聊天
0
投稿
猜你喜欢
java-for循环问题
2022-01-22 12:46:53
Hadoop源码分析六启动文件namenode原理详解
2021-08-20 01:03:55
浅谈java中Math.random()与java.util.random()的区别
2023-11-26 16:37:16
详解Spring Bean的配置方式与实例化
2022-01-13 05:47:51
Java信号量Semaphore原理及代码实例
2021-10-02 21:55:08
SpringBoot+MQTT+apollo实现订阅发布功能的示例
2021-08-30 22:36:46
SpringCloud OpenFeign 服务调用传递 token的场景分析
2022-12-26 22:24:07
Hystrix Dashboard断路监控仪表盘的实现详细介绍
2022-07-29 05:27:26
struts2自定义拦截器的示例代码
2021-12-01 16:24:52
Java8内存模型PermGen Metaspace实例解析
2023-11-25 10:53:36
Java输入年份和月份判断多少天实例代码
2023-12-23 10:43:11
Java接口默认方法带来的问题分析【二义性问题】
2023-11-27 20:32:55
winform绑定快捷键的方法
2023-12-10 22:16:04
深入理解Java设计模式之代理模式
2022-01-14 07:42:00
Springboot自动装配实现过程代码实例
2023-11-14 19:50:19
在SpringBoot项目中的使用Swagger的方法示例
2022-01-04 15:14:39
Java java.sql.Timestamp时间戳案例详解
2023-11-10 13:50:47
Java中对List集合的常用操作详解
2023-05-02 23:52:47
spring使用OXM进行对象XML映射解析
2022-11-11 16:05:19
Java实现链表数据结构的方法
2023-10-19 20:36:57