当前位置: 首页 > news >正文

【网络应用程序设计】实验一:本地机上的聊天室

个人博客:https://alive0103.github.io/
代码在GitHub:https://github.com/Alive0103/XDU-CS-lab
能点个Star就更好了,欢迎来逛逛哇~❣

主播写的刚够满足基本功能,多有不足,仅供参考,还请提PR指正,很高兴能帮到你

服务器端/客户端代码:GitHub指路

一、 实验内容

在linux平台上使用守护进程实现服务器,用于支持宿主机和虚拟机上的客户端进行聊天。客户端使用图形界面实现。

二、 实验准备

服务器端:运行在腾讯云Linux虚拟机上的守护进程
客户端:运行在本地主机的GUI程序
通信协议:TCP协议,使用8888端口,结合虚拟机IP为139.155.27

三、 服务器端实现

  1. 创建守护进程
  2. 写核心服务器代码
    代码都在链接里了,目录结构可以通过脚本创建,自己问AI吧

四、 客户端实现(Qt)

  1. 界面设计
    QTextBrowser 用于显示消息
    QLineEdit 用于输入消息
    QPushButton 发送按钮
    在这里插入图片描述

  2. 配置网络通信(CMakeLists.txt)

  3. 写其他文件

五、启动

服务端:这两个选一个就行
(1)直接启动服务
记得先放行相应端口哦

1.	# 进入编译目录
2.	cd ~/chat_server/bin
3.	
4.	# 启动服务端(前台运行,查看实时输出)
5.	./chatserver
6.	
7.	# 后台启动(添加 & 符号)
8.	./chatserver &

(2)部署生产环境
(1)创建systemd服务文件

sudo nano /etc/systemd/system/chatserver.service

(2)chatserver.service

[Unit]
Description=Chat Server Daemon
After=network.target[Service]
Type=simple                  # 明确服务类型
User=lighthouse
Group=lighthouse
WorkingDirectory=/home/lighthouse/chat_server/bin
ExecStart=/home/lighthouse/chat_server/bin/chatserver
Restart=on-failure           # 仅在失败时重启
RestartSec=5s                # 重启间隔延长到5秒# 日志重定向到系统日志
# StandardOutput=syslog
# StandardError=syslog[Install]
WantedBy=multi-user.target

(3)启动服务

sudo systemctl daemon-reload
sudo systemctl enable --now chatserver

客户端:本地 Qt编译运行

测试

连接服务器进行聊天
telnet <你的服务器地址> 8888
预备发送:
在这里插入图片描述
成功发送:
在这里插入图片描述

相关文章:

  • 代码随想录训练营38天 || 322. 零钱兑换 279. 完全平方数 139. 单词拆分
  • 从零开始学习MySQL的系统学习大纲
  • HCIP(综合实验2)
  • 每日算法-哈希表(两数之和、)
  • el-table表格既出现横向滚动条,又出现纵向滚动条?
  • YOLOv8非常详细的模型的训练两种方式
  • 文件上传漏洞2
  • <四级英语词汇> 2025.4.22
  • Cursor Free VIP 重置进程错误,轻松恢复使用!
  • 三网通电玩城平台系统结构与源码工程详解(四):子游戏集成与服务器调度机制全解
  • Java学习手册:RESTful API 设计原则
  • MQ底层原理
  • 强化学习笔记(四)——SARSA、Q-learning
  • 伪谱法求解最优控制问题(附Python代码)
  • Lustre/Scade 与 IEC 61131-3 相似的方面及差异
  • C++ 拷贝构造函数 浅拷贝 深拷贝
  • 【以太网安全】——防护高级特性配置总结
  • Windows7升级Windows10,无法在此驱动器上安装Windows
  • 鸿道操作系统Type 1虚拟化:破局AI机器人与智能汽车的“安全”与“算力”双刃剑
  • STM32提高篇: WIFI通讯
  • 山东省检察院答澎湃:惩治网络售假,强化“全链条”刑事打击
  • 东方富海陈玮: 什么样的创业者能让天使投资人愿意下注
  • 打造“朋友圈”,“淘书乐”为旧书找“新朋友”
  • 事故调查报告:东莞一大楼装修项目去年致1人死亡,系违规带电作业
  • 电影“名场面”被制成表情包在网站上传播,网站运营者被判赔5500元
  • 工人日报评一些旅行社不收记者律师:“拒客黑名单”暴露心虚病