小工具知识网

当前位置: 首页 > 行业知识 > Linux-网络相关函数接口-012

行业知识

Linux-网络相关函数接口-012

2026-11-06 15:19:09 来源:互联网转载

1.UDP编程

socket套index.php/tags-41973.html" >���字编程

()

1.1【socket】

1.1.1函数原型

【int socket(int domain, int type, int protocol);】

1.1.2函数功能

        创建一个用来通信的文件描述符

1.1.3函数参数

【domain】:使用的协议族 AF_INET (IPv4协议族)【type】:套接字类型            【SOCK_STREAM】:流式套接字            【SOCK_DGRAM】:数据报套接字            【SOCK_RAW】:原始套接字【protocol】:协议,默认为0 

1.1.4返回值

【成功】:返回文件描述符【失败】:返回【-1】

1.2【sendto】

1.2.1函数原型

【ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);】

1.2.2函数功能

利用套接字向指定地址发送数据信息

1.2.3函数参数

【sockfd】:套接字文件描述符【buf】:发送数据空间首地址【len】:发送数据的长度【flags】:属性默认为0【dest_addr】:目的地址信息存放的空间首地址【addrlen】:目的地址的长度
struct sockaddr_in {       sa_family_t    sin_family;/*address family: AF_INET */       in_port_t      sin_port;/* port in network byte order */       struct in_addr sin_addr;   /* internet address */};
struct in_addr {       uint32_t       s_addr; /*address in network byte order */};

1.2.4返回值

【成功】:返回实际发送字节数【失败】:返回【-1】

1.3【inet_addr】

1.3.1函数原型

【in_addr_t inet_addr(const char *cp);】

1.3.2函数功能

将字符串IP地址转换为内存中的IP地址

1.3.3函数参数

【cp】:  

1.3.4返回值

【成功】:【失败】:返回【-1】

1.4【htons】

1.4.1函数原型

【uint16_t htons(uint16_t hostshort);】

1.4.2函数功能

将本地字节序转换为网络的大端字节序

1.4.3函数参数

【hostshort】:  

1.4.4返回值

【成功】:【失败】:返回【-1】

源码示例:

()
//发送示例int main(void){int sockfd = 0;struct sockaddr_in recvaddr;char tmpbuff[1024] = {"hello world"};ssize_t nsize = 0;/* 创建用来通信的UDP套接字 */sockfd = socket(AF_INET, SOCK_DGRAM, 0);if (-1 == sockfd){perror("fail to socket");return -1;}/* 对接收方地址赋值 */recvaddr.sin_family = AF_INET;recvaddr.sin_port = htons(50000);//本地字节序转换为网络字节序recvaddr.sin_addr.s_addr = inet_addr("192.168.1.110");/* 发送信息 */nsize = sendto(sockfd, tmpbuff, strlen(tmpbuff), 0, (struct sockaddr *)&recvaddr, sizeof(recvaddr)); //接收端地址强制转换为通用类型if (-1 == nsize){perror("fail to sendto");return -1;}printf("成功发送 %ld 字节!\n", nsize);close(sockfd);return 0;}

上一篇:超级服务器怎么样?

下一篇:一文解决故障诊断 |CNN-LSTM卷积神经网络-长短期记忆神经网络组合模型的故障诊断(Matlab)