PC机与ARM板的聊天软件.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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()));

您可能关注的文档

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档