欢迎来到天天文库
浏览记录
ID:47630255
大小:77.69 KB
页数:4页
时间:2019-09-27
《QT前台与后台程序通过socket通信》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、QT前台与后台程序通过socket通信作者:佚名和c/c卄相关新浪微博QQ空间QQ微I専百度搜藏腾讯朋友QQ收藏百度空间人人网开心网0通常情况下在linux上写程序不需要GUI进行展示,但有时做测试还是有个前台界面更加方便,省去了很多繁琐的输入过程,同时也更易于观察输出内容。因此这两天开始冋顾了一下QT的东西。做为棊础的功能,首先做了个QT和后台进程(c语言实现)交互的模块,在此:基础上今后再针対具体需求做些修改便可完成前后台之间的配合。因为QT本身是跨平台的框架,因此以后前端程序移植到具他平台依然能很好的运行。QT前台:window下客户端,通过执行ip和端口
2、发送字符串并等待接收。使用QT提供的对socket封装过的类QTcpSocket和相关函数后台进程:虚拟机linux±c语言实现,通过系统的socket函数接收字符串,并将字符串中的小写字符转换为大写,并返回给客户端。QT前台截图:SISDiplegIAJ.1INBEIJING后台截图:IJ-CD■2亠KB亠Kp孑习tc请in【请y接y功接.h车ka宓•车一羅rr枢zh户己:返断户90待户收理户待rr等S.接处客爭—前台代码:#include"dialog.h"#include"ui_dialog.h"Dialog::Dialog(QWidgct*parent)
3、:QDialog(parent),ui(newUi::Dialog){ui->setupUi(this);tcpSocket=newQTcpSocket(this);ui->lineEdit->setText(n192.16&244.66°);ui->lincEdit_2->sctTcxt(“2010“);connect(tcpSocket,SIGNAL(error(int)),this,SLOT(errMsg(int)));connect(ui->pushButton,SIGNAL(clickedO),this,SLOT(on_pushButton_click
4、ed(bool)));connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(recvMsgO));}Dialog::~Dialog(){deleteui;}voidDialog::on_pushButton_clicked(boolchecked){QStringport;intport_Int;port=ui->lineEdit_2->text();port_Int=port.tolnt();tcpSockct->conncctToHost(QHostAddrcss(ui->lincEdit->tcxt()),port
5、」nt);//waitForConnected的参数是超时时间讦(!tcpSocket->waitForConnected(2)){tcpSocket->disconnectFromHost();return;}QTextStreamout(tcpSocket);out«ui->lineEdit_3->text()«endl;}voidDialog::recvMsg(){QStringres;res+=tcpSocket->readAll();ui->textEdit->setText(res);ui->textEdit->moveCursor(QTextCur
6、sor::End);tcpSocket->disconnectFromHost();}voidDialog::errMsg(interrNo){qWarning("thisiserr!!!!“);后台代码:#include#include#include#include#include#defineRCV_BUF_LEN200intmain(intac,char**av)intsock;intclient_Sock;intret;charinputBu
7、f[200];charrecvBuf[RCV_BUF_LEN];structsockaddr_insvrAddr;inti;intval;/**创建监听套接字**/if((sock=socket(AF_INET,SOCK_STREAM,0))<0){printf(usocketerror!M);return-1;/**指定监听端口和地址**/memset(&svrAddr,0x00,sizeof(svrAddr));svrAddr.sin_family=AF_1NET;svrAddi*.sin_addr.s_addr=htonl(INADDR_ANY);sv
8、rAdd匚sin_por
此文档下载收益归作者所有