前言: IT培训网小编来告诉大家利用java socket实现简单即时通讯的方法。 1.socket服务器 /** * @Description 即时消息服务器 * @au
IT培训网小编来告诉大家利用java socket实现简单即时通讯的方法。
1.socket服务器
/**
* @Description 即时消息服务器
* @author xiao tang
* @version 1.0.0
* @createTime 2022年01月23日
*/
public class IMSocketServer {
private static int PORT = 13;
public static void main(String[] args) {
ServerSocket server = null;
try {
// 开启端口
server = new ServerSocket(PORT);
System.out.println("服务器已启动");
// 与客户端建立socket连接
Socket socket = server.accept();
System.out.println("客户端请求,创建连接成功");
// 写出器
PrintWriter writer2Client = new PrintWriter(socket.getOutputStream());
writer2Client.write("连接创建成功\r\n");
writer2Client.flush();
// 客户端读入器
Scanner scanner4Client = new Scanner(socket.getInputStream());
// 控制台读入器
Scanner scanner4Console = new Scanner(System.in);
// 等待客户端输入
while(true) {
// 读取客户端消息并打印
String msg4Client = scanner4Client.nextLine();
System.out.println("客户端:" + msg4Client);
System.out.print("服务端:");
// 获取控制台输入数据并发送到客户端
String msg4Console = scanner4Console.nextLine();
writer2Client.write(msg4Console + "\r\n");
writer2Client.flush();
}
} catch (IOException e) {
throw new MyRunTimeException("打开端口socket失败,端口=" + PORT + ", 异常信息=" + e.getMessage());
} finally {
try {
if (server != null) {
server.close();
}
} catch (Exception e) {
}
}
}
}
2.socket客户端
/**
* @Description 即时消息客户端
* @author xiao tang
* @version 1.0.0
* @createTime 2022年01月23日
*/
public class IMSocketClient {
private static int PORT = 13;
public static void main(String[] args) {
try (Socket socket = new Socket()) {
// 与服务器端建立socket连接
socket.connect(new InetSocketAddress("localhost", PORT), 3000);
// 新建读取器,写出器
Scanner scanner4Server = new Scanner(socket.getInputStream());
PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
// 控制台读入器
Scanner scanner4Console = new Scanner(System.in);
System.out.println("连接成功,等待服务器响应");
// 等待服务器控制台输入
while(true) {
// 读取服务器响应并打印
String msg4Server = scanner4Server.next();
System.out.println("服务器:" + msg4Server);
System.out.printf("\n客户端:");
// 客户端读取控制台输入,并发送到服务器
String msg4Console = scanner4Console.nextLine();
printWriter.write(msg4Console + "\r\n");
printWriter.flush();
}
} catch (Exception e) {
throw new MyRunTimeException("客户端通讯失败, 异常信息=" + e.getMessage());
}
}
}
3.通讯效果
4.注意事项
发送消息的时候,一定要加上回车和换行符(\r\n),不然 scanner.nextLine() 无法识别到一行的结束,就会一直阻塞。
文章出自:http://qh.itpxw.cn/peixun/software/2022123784.html
文章标题:Java实现WebSocket即时通讯
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2024-02-20 13:02
Java定义方法的格式是什么?IT培训网小编来告诉大家。所谓方法...
大家在Java教程中会学到关于Java消息推送的知识,那么,Java消息...
常用的Java日期格式转换有哪些?IT培训网小编来告诉大家。 1...
Java创建对象数组的方法是什么?IT培训网小编来告诉大家。Ja...