- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PC机与ARM板的聊天软件
PC机与ARM板的聊天软件
?开始我们明确,此软件是在局域网里提供收发信息的聊天软件,也就是用网线连接,之后通过网线收发信息。既然如此,那么首先要把IP设在同一网段。这个工作之前篇“基于ARM的视频监控”已经有详细解释以及附图,在此不详述。之后,那就需要连接,连接当然要选择端口号,这个在程序已经设定好了,不用担心,这里我开的是9090端口,很显然这么大端口基本是没什么服务会用到的,所以是安全的。 然后数据传输的具体实现,首先,传输数据,当然要有个缓冲区,数据先传进缓冲区,之后在从缓冲区读取,不然数据没办法凭空传输,这就好比一个容器,当然这里缓冲区和caches是不一样的,caches是为了提高程序运行速度,当然如果有中断,或者多线程存在就要用volatile来定义了。 呵呵,扯远了。。。 ?这边我们事先要清空缓冲区,这是一件很重要的事,不然很有可能出现乱码等。不过如果数据和少,很可能自动传输不是很顺利,所以我们需要考虑到这点,那么需要人工加一句推代码,为了能让数据完全传输。 ?好了,大概流程就是这样,不过没做界面美化,要做的话,网上可以的荡美化包,有做好的。先贴效果图:
?
?
ARM端,初始监听状态。
?
PC机端,还没连接。
?
?
ARM端,已连接上。
PC机端输入IP连接上ARM端。
?
从PC端发送消息给ARM端,ARM端接受到消息。
?
ARM端发送来的消息在PC端显示。
?
?
PC端断开聊天。
?
?
?
断开后ARM端效果。
当然还有一些功能,比如说清屏,还有在ARM端也可以断开。
?
下面部分代码
PC端:
?
#include socketwidget.h
#include ui_socketwidget.h
/*客户端程序*/
SocketWidget::SocketWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::SocketWidget)
{
ui-setupUi(this);
socket = new QTcpSocket(this);
connect(ui-pushButton_connect,SIGNAL(clicked()),this,SLOT(onConnect())); //点击相关按钮触发相关槽函数
connect(ui-pushButton_disconnect,SIGNAL(clicked()),this,SLOT(onDisconnect()));
connect(ui-pushButton_send,SIGNAL(clicked()),this,SLOT(onSend()));
connect(socket,SIGNAL(connected()),this,SLOT(imcoming())); //管道建立后触发相关函数
ui-pushButton_send-setShortcut(tr(Ctrl+R)); //设置发送相关快捷键
}
/*连接按钮点击后的函数*/
void SocketWidget::onConnect()
{
ui-pushButton_connect-setDisabled(true); //设置相关按键使能与否
// socket-connectToHost(localhost,9090);
socket-connectToHost(QString(ui-lineEdit_socket-text()),9090); //这里可以在lineEdit里写相应ip,如果只是测试只要输入localhost即可,且配置好端口
if(!socket-waitForConnected(3000)) //等待3s,如果管道没接通那么则行{}内容
{
ui-pushButton_connect-setEnabled(true);
ui-textEdit-append(connect failed!);
return;
}
ui-pushButton_disconnect-setEnabled(true); //设置相关按键使能与否
ui-pushButton_send-setEnabled(true);
ui-textEdit-append(connected to host);
// connect(socket,SIGNAL(readyRead()),this,SLOT(onread()));
您可能关注的文档
- LED路灯电力线载波控制.doc
- 企业内训课纲泰山培训网建立以需求为导向的量化培训管理体系.doc
- 企业利润倍增的利器绩效管理.ppt
- Less13_性能管理.ppt
- 企业会计制度设计—理论与案例分析9主要业务处理程序和相关内控制度的设计1.ppt
- LFP901调试.ppt
- Linux命令实验指导书.doc
- Linux教程第22章-安装PHP.ppt
- LINUX环境高级编程-第五讲信号.ppt
- Linux系统管理_CHAP6_V12.ppt
- 2025年中山市沙溪镇人民政府所属事业单位招聘11人笔试备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库含答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库及完整答案详解1套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库参考答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及答案详解一套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及完整答案详解1套.docx
文档评论(0)