2.Socket继承QThread的双线程使用

2020-11-02  本文已影响0人  YanyZhao

1、http://blog.sina.com.cn/s/articlelist_2801495241_0_1.html

Thread

2 Thread
2.1 继承QThread

实现多线程的方法:

2.2 槽机制 QObject

3 Socket

socket通信图
3.1 sockaddr和sockaddr_in详解

struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址.

struct sockaddr {  
    sa_family_t sin_family;//地址族
    char sa_data[14]; //14字节,包含套接字中的目标地址和端口信息               
   }; 
struct sockaddr_in {  
    sa_family_t sin_family;//地址族
    uint16_t sin_port; //16位TCP、UDP端口号
    struct in_addr sin_addr; //32位IP地址  
    char sin_zero[8]; //不使用             
   };

其中结构体in_addr,用来存放32位IP地址。

struct in_addr
{
  In_addr_t s_addr; //32位IPv4地址
};

注:inet_addr在头文件#include <arpa/inet.h>定义

小结:
htons()作用是将端口号由主机字节序转换为网络字节序的整数值。(host to net)
inet_addr()作用是将一个IP字符串转化为一个网络字节序的整数值,用于sockaddr_in.sin_addr.s_addr。

socket 赋值地址、端口的方法
<netinet/in.h>中的宏定义:

inet_ntop:点分十进制->二进制整数
inet_pton:二进制整数->点分十进制

3.1 socket
3.2 QTcpSocket
上一篇下一篇

猜你喜欢

热点阅读