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

个人博客: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
预备发送:
在这里插入图片描述
成功发送:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alive~o.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值