Qt中UDP协议的使用实例

来源:互联网 发布:unity3d人物走动 编辑:程序博客网 时间:2024/05/16 11:06

给力的发送和接收UDP对等端

 

基于QT的UDP协议的通信小程序 2009年11月24日 星期二 19:27////////1端/////////////////////////////////////////////////////////////main1.cpp///////////////////#include <QApplication>#include "udp1.h"int main(int argc,char **argv){QApplication app(argc,argv);Dialog dlg;dlg.show();return app.exec();}///////////////udp1.h///////////////////////#ifndef _UDP1_H_#define _UDP1_H_#include <QDialog.h>#include <QTextEdit>#include <QPushButton>#include <UdpSocket>#include <QGridLayout>class Dialog :public QDialog{Q_OBJECTpublic :Dialog();private:   QTextEdit *textEdit;   QPushButton *sendButton;   QPushButton *exitButton;   QUdpSocket *udpSocket;   QGridLayout *layout;public slots:   void send_slot();   void recv_slot();};#endif//////////////////udp1.cpp///////////////////////////////////////#include "udp1.h"#include <QtDebug>Dialog::Dialog(){sendButton = new QPushButton("send");exitButton = new QPushButton("exit");textEdit = new QTextEdit();layout = new QGridLayout;layout -> addWidget(textEdit,0,0,4,6);layout -> addWidget(sendButton,5,0,1,2);layout -> addWidget(exitButton,5,4,1,2);setLayout(layout);udpSocket = new QUdpSocket;udpSocket -> bind(QHostAddress::LocalHost,9000);connect(sendButton,SIGNAL(clicked()),this,SLOT(send_slot()));connect(exitButton,SIGNAL(clicked()),this,SLOT(close()))connect(udpSocket,SIGNAL(readyRead()),this,SLOT(recv_slot()));}void Dialog::send_slot(){qDebug()<<"in send_slot";QString str = textEdit -> toPlainText();udpSocket -> writeDatagram(qPrintable(str),4096,QHostAddress::LocalHost,8000);}void Dialog::recv_slot(){qDebug()<<"in recv_slot()";char buffer[4096];udpSocker -> readDatagram(buffer,4096,0,0);QString str(buffer);textEdit -> setText(str);}/////////////2端////////////////////////////////////////////////////////////////////////////////main2.cpp///////////////////////////////#include <QApplication>#include "udp2.h"int main(int argc,char **argv){QApplication app(argv,argv);Dialog dlg;dlg.show();return app.exec();}//////////////////////////udp2.h/////////////////////////////////////#ifndef _UDP_H_#define _UDP_H_#include <QDialog>#include <QPushButton>#include <QTextEdit>#include <QUdpSocket>#inlcude <QGridLayout>class Dialog:public QDialog{Q_OBJECTpublic:Dialog();private:QPushButton *sendButton;QPushButton *exitButton;QTextEdit *textEdit;QUdpSocket *udpSocket;QGridLayout *layout;public slots:void send_slot();void recv_slot();};#endif//////////////////////////udp.cpp////////////////////////////////////#include "udp2.h"#include <QtDebug>Dialog::Dialog(){sendButton = new QPushButton("send");exitButton = new QPushButton("exit");textEdit = new QTextEdit();layout = new QGridLayout;layout -> addWidget(textEdit,0,0,4,6);layout -> addWidget(sendButton,5,0,1,2);layout -> addWidget(exitButton,5,4,1,2);setLayout(layout);udpSocket = new QUdpSocket;udpSocket -> bind(QHostAddress::LocalHost,8000);connect(sendButton,SIGNAL(clicked()),this,SLOT(send_slot()));connect(exitButton,SIGNAL(clicked()),this,SLOT(close()));connect(udpSocket,SIGNAL(readyRead()),this,SLOT(recv_slot()));}void Dialog::send_slot(){ qDebug()<<"in send_slot";QString str = textEdit -> toPlainText();udpSocket -> writeDatagram(qPrintable(str),4096,QHostAddress::LocalHost, 9000);// udpSocket -> writeDatagram(qPrintable(textEdit -> toPlainText()), 256, QHostAddress::LocalHost, 9000);}void Dialog::recv_slot(){qDebug()<<"in recv_slot";char buffer[4096];udpSocket ->readDatagram(buffer,4096,0,0);QString str(buffer);textEdit -> setText(str);} 

 

http://no001.blog.51cto.com/blog/1142339/412225
 

原创粉丝点击