- 9
- 0
- 约5.02千字
- 约 6页
- 2016-11-27 发布于重庆
- 举报
基于tcp協议的网络聊天室
青岛科技大学信息科学技术学院实验报告
----------------------------------------------------------------------------------------------------------------------
班级: 软件113 姓名: 蒋栋 学号: 1108050328 成绩:
实验名称: 基于TCP的网络聊天室
1.实验目的:
掌握TCP通讯协议、掌握QTcpSocket
2.实验内容:
使用Qt的QtcpSocket实现简单的网络聊天程序,范例如图:
包括拂去其程序和客户端程序,服务端程序可以创建一个聊天室,客户端程序可以输入登陆的用户名、服务器地址以及使用的端口号,然后进入聊天室,聊天室中的每一位用户均可以看见发布的信息。
3.实验方法:
使用Qt的QtcpSocket,参考Qt网络编程实验。
4.实验过程
tcpServer端 代码:
#include dialog.h
#include ui_dialog.h
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui-setupUi(this);
ui-lineEdit-setText(8010);
port=8010;
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::on_newchat_clicked()
{
server=new Server(this,port);
connect(server,SIGNAL(updateServer(QString,int)),this,SLOT(updateServer(QString,int)));
ui-newchat-setEnabled(false);
}
void Dialog::updateServer(QString msg,int length)
{
ui-listWidget-addItem (msg.left(length) );
}
tcpServer端server.cpp 代码:
#include server.h
#include QTcpSocket
Server::Server(QObject*parent,int port)
:QTcpServer(parent)
{
listen(QHostAddress::Any,port);
}
void Server::incomingConnection(int socketDescriptor)
{
TcpclientSocket*tcpClientSocket=new TcpclientSocket(this);
connect(tcpClientSocket,SIGNAL(updateClient(QString,int)),this,SLOT(updateClient(QString,int)));
connect(tcpClientSocket,SIGNAL(disconnected(int)),this,SLOT(slotDisconnected(int)));
tcpClientSocket-setSocketDescriptor(socketDescriptor);
tcpClientSocketList.append(tcpClientSocket);
}
void Server::updateClient(QString msg, int length)
{
emit updateServer(msg,length);
for(int i=0;itcpClientSocketList.count();i++)
{
QTcpSocket*item=tcpClientSocketList.at(i);
if(item-write(msg.toLatin1(),length)!=length)
{continue ;};
}
}
void Server::slotDisconnected(int descriptor)
{
for(int i=0;itcpClientSocketList.count();i++)
{
QTcpSocket*item=tcpClientSocketList.at(i);
if(it
您可能关注的文档
- 基于Solidworks的抓物機器车机构设计及运动仿真.docx
- 基于SolidWorks的注塑模具CAD系統.doc
- 基于Solidworks的零件參数化设计.doc
- 基于solidworks蝸轮齿面的三维仿真造型.doc
- 基于SolidWorks的錘片式饲料粉碎机的设计.doc
- 基于Solidworks齒轮精确建模.doc
- 基于solidworks的雙级圆柱齿轮减速器机械实体造型设计.doc
- 基于som網络灰关联分析BP网络预测模型.doc
- 基于Solr的搜索引擎研究與实现.doc
- 基于SOPC技術实现数字闹钟.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 我们仨电子版.pdf VIP
- 妇幼保健院十五五发展规划.docx VIP
- 小学生必背古诗75首(打印版).pdf VIP
- 期末重难点检测卷(含解析)-2026年数学三年级下册北师大版.pdf VIP
- ZXK-7532数控立式钻铣床主运动、进给系统及控制系统的设计.doc VIP
- 2025至2030中国碳纤维复合材料在航空航天领域应用现状及投资机会报告.docx
- 雅马哈psre313使用说明书.pdf VIP
- 临床成人患者医用粘胶相关性皮肤损伤预防及护理-MARSI.pptx
- 电力行业深度:算力之争,电力为王,聚焦美国AI能源革命核心赛道.pptx VIP
- 房地产上市公司偿债能力分析【文献综述】.docx VIP
原创力文档

文档评论(0)