【Qt5开发及实例】29、实现服务器端的编程,UDP协议
来源:互联网 发布:淘宝偷换宝贝处罚 编辑:程序博客网 时间:2024/05/17 08:43
udpserver.h
/*** 书本:【Qt5开发及实例】* 功能:实现服务器端的编程* 文件:udpserver.h* 时间:2015年2月5日21:05:21* 作者:cutter_point*/#ifndef UDPSERVER_H#define UDPSERVER_H#include <QDialog>#include <QLabel>#include <QLineEdit>#include <QPushButton>#include <QVBoxLayout>#include <QTimer>#include <QUdpSocket>class UdpServer : public QDialog{ Q_OBJECTpublic: UdpServer(QWidget *parent = 0, Qt::WindowFlags f = 0); ~UdpServer();public slots: void StartBtnClicked(); void timeout();private: QLabel *TimerLabel; //计时器标签 QLineEdit *TextLineEdit; //显示 QPushButton *StartBtn; //开始按钮 QVBoxLayout *mainLayout; //布局 int port; //UDP端口号 bool isStarted; //判断是否开始计算 QUdpSocket *udpSocket; QTimer *timer; //每隔一段时间就发送广播};#endif // UDPSERVER_H
udpserver.cpp
/*** 书本:【Qt5开发及实例】* 功能:实现服务器端的编程* 文件:udpserver.cpp* 时间:2015年2月5日21:05:21* 作者:cutter_point*/#include "udpserver.h"#include <QHostAddress>UdpServer::UdpServer(QWidget *parent,Qt::WindowFlags f) : QDialog(parent, f){ setWindowTitle(tr("UDP Server")); TimerLabel = new QLabel(tr("计时器:"),this); TextLineEdit = new QLineEdit(this); StartBtn = new QPushButton(tr("开始:"),this); mainLayout = new QVBoxLayout(this); mainLayout->addWidget(TimerLabel); mainLayout->addWidget(TextLineEdit); mainLayout->addWidget(StartBtn); //布置好界面显示 connect(StartBtn, SIGNAL(clicked()), this, SLOT(StartBtnClicked())); //点击按钮触发事件 //设定UDP端口 port = 5555; isStarted = false; //开始是没有启动 udpSocket = new QUdpSocket(this); //一个套接字 timer = new QTimer(this); //计时器 connect(timer, SIGNAL(timeout()), this, SLOT(timeout()));}// void StartBtnClicked();void UdpServer::StartBtnClicked(){ if(!isStarted) //如果计时还没有启动 { StartBtn->setText(tr("停止")); timer->start(1000); //开始启动计时器并执行1000毫秒,也就是1秒 isStarted = true; //表示启动 } else { StartBtn->setText(tr("开始:")); isStarted = false; timer->stop(); //停止计时 }}//void timeout();void UdpServer::timeout(){ QString msg = TextLineEdit->text(); int length = 0; if(msg == "") //为空就不进行端口传输 { return; } //发送数据报到相应的端口 if((length = udpSocket->writeDatagram(msg.toLatin1(), msg.length(), QHostAddress::Broadcast, port)) != msg.length()) { return; }}UdpServer::~UdpServer(){}
结果
0 0
- 【Qt5开发及实例】29、实现服务器端的编程,UDP协议
- 【Qt5开发及实例】30、实现客户端的编程,UDP协议
- QT5 下udp 编程实例
- 【Qt5开发及实例】20、实现一个飞舞的蝴蝶
- 【Qt5开发及实例】25、实现代理的功能
- 【Qt5开发及实例】32、实现键盘的监控操作
- linux 编程:UDP协议下实现服务器端程序设计
- 【Qt5开发及实例】35、实现单元测试
- Qt5主窗体程序: 文本编辑器的实现(Qt5开发及实例)
- Qt5主窗体程序: 文本编辑器的实现(Qt5开发及实例)
- 实现UDP协议编程
- Socket网络编程(一)入门及UDP协议实例
- QT5开发及实例读后感
- 【Qt5开发及实例】12、实现一个简单的文本编辑器1
- 【Qt5开发及实例】13、实现一个简单的文本编辑器2
- 【Qt5开发及实例】14、实现一个简单的文本编辑器3
- 【Qt5开发及实例】15、实现一个简单的文本编辑器4
- 【Qt5开发及实例】16、实现一个简单的文本编辑器(over)
- [半平面交] poj 3384 Feng Shui
- 记录一下七维空间解决问题
- Nginx 数据结构 ngx_queue_t
- 2014年总结
- 黑马程序员_Java_网络编程
- 【Qt5开发及实例】29、实现服务器端的编程,UDP协议
- poj 1039 Pipe
- Hadoop-1.x安装与配置
- SSH之spring
- C编译时`true' undeclared (first use in this function)
- Linux Makefile 详解
- 字符串定义操作(C语言)
- 新手学MVC----MVC3.0错误 HTTP 404
- 过年回来博客开始更新