这篇文章主要为大家详细介绍了Java实现在线聊天功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了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();
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
织梦狗教程
本文标题为:Java实现在线聊天功能


基础教程推荐
猜你喜欢
- Project Reactor源码解析publishOn使用示例 2023-04-12
- SpringBoot配置文件中密码属性加密的实现 2023-03-11
- Java使用EasyExcel进行单元格合并的问题详解 2023-01-18
- 全局记录Feign的请求和响应日志方式 2023-01-09
- 一文了解Java 线程池的正确使用姿势 2023-06-17
- Java去掉小数点后面无效0的方案与建议 2023-02-18
- JVM分析之类加载机制详解 2023-04-06
- 工厂方法在Spring框架中的运用 2023-06-23
- Java File类的概述及常用方法使用详解 2023-05-18
- 用java实现扫雷游戏 2022-12-06