day_07_QT网络编程
来源:互联网 发布:动感影集制作软件 编辑:程序博客网 时间:2024/06/02 05:41
- 十四QT网络编程
- 1网络协议层次OSI七层
- 2回顾Linux的socket编程
- 3QT网络编程中相关类
- 1QHostAddress封装一个IP
- 2QAbstractSocket套接字类TCP和UDP都可以使用
- 4QUdpSocketUDP编程
- 5TCP编程
- 1QTcpSocket建立TCP套接字
- 2QTcpServer建立TCP服务器
- 十四QT网络编程
十四、QT网络编程
1、网络协议层次(OSI七层)
… …
2、回顾Linux的socket编程
… …
3、QT网络编程中相关类
1)QHostAddress(封装一个IP)
2)QAbstractSocket(套接字类,TCP和UDP都可以使用)
bind(ip地址, 端口);connectToHost(ip地址, 端口); // uc:connectdisconnectFromHost(); // 断开连接error(); // 获取网络异常原因state(); // 获取套接字连接状态bytesAvailable(); // 获取套接字等待读取的数据connected()[signal] // 连接成功时发送disconnected()[signal] // 断开连接时发送error(socketError)[signal] // 网络异常时发送QIODevice::readyRead()[signal] // 套接字有新的数据到来时被发送read/readAll(); // 读套接字的数据write(); // 发送数据
4、QUdpSocket(UDP编程)
hasPendingDatagrams(); // 判断当前套接字是否有等待读的数据包pendingDatagramSize(); // 获取等待的的数据包的大小readDatagram(); // 读数据包,类似recvfromwriteDatagram(); // 发送数据包
案例: UDP网络广播
1)发送广播消息
a. 指定广播地址:255.255.255.255
b. 指定广播端口:8888
c. 输入广播消息,每隔1秒发送一次
d. 工程名:Sender
e. 类名:SenderDialog
2)接收广播消息
a. 指定接收广播的端口号
b. 接收广播消息并显示
c. 工程名:Receiver
d. 类名:ReceiverDialog
5、TCP编程
1)QTcpSocket,建立TCP套接字
2)QTcpServer,建立TCP服务器
// 有新的客户端和服务器建立连接时被发送newConnection()[signal]// 获取和客户端通信的套接字对象QTcpSocket* nextPendingConnection()
案例:网络聊天室
1)服务器
a. 使用QTcpServer创建TCP服务器
b. 保存所有和客户端通信的套接字
c. 接收客户端聊天消息(read)
d. 转发聊天消息给所有的客户端(write)
工程名:Server
2)客户端
a. QTcpSocket建立TCP客户端
b. 连接服务器(IP/Port)
c. 发送聊天消息到服务器(write)
d. 接收和显示聊天消息
工程名:Client
阅读全文
0 0
- day_07_QT网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 本地计算机上的XXX服务启动后又停止了——Windows Service服务调试
- UVA-1422(贪心+二分+优先队列)
- js工具-合并对象
- webStorage是html5中用于本地化存储的一种方式
- JointJS零基础入门01-JointJS安装&HelloWorld
- day_07_QT网络编程
- 盘面分化严重发出重磅信号大盘暗藏玄机
- nginx常用命令
- Http
- 深入理解javascript原型和闭包(1)——一切都是对象
- ruby on rails html杂记
- HDU 6127 Hard challenge
- Java中static代码块、普通代码块和构造代码块的执行顺序
- 快速排序算法 c语言