UDP通信编程

1 UDP通信编程
1.1 UDP相关函数介绍
(1)什么是socket?

· Linux内核提供的编程接口;

· Linux下的一种特殊的文件描述符

(2)四个常用函数

头文件

​ #include <sys/types.h>

​ #include <sys/socket.h>

函数原型

socket();//提供一个套接字
int socket(int domain, int type, int protocol);

·domain:指明了协议族/域,通常 AF_INET(ipv4), AF_INET6(ipv6), AF_LOCAL;
·type:套接字类型,主要 SOCK_STREAM(流式套接字,TCP), SOCK_DGRAM(数据报套接字,UDP), SOCK_RAW(原始socket);
·protocol:指定使用的是哪协议,一般取为0;
·返回值:成功时,返回一个小的非负整数值,与文件描述符类似;

bind();//绑定端口、ip地址
int bind(int fd, struct sockaddr *addr, socklen_t addrlen);
int bind(SOCKET s, const sockaddr *addr, int namelen);

·fd:socket函数生成的文件描述符
·addr:需要绑定fd使用的地址族结构体
·addrlen:地址族结构体的长度
·返回值:成功返回0;失败返回-1,设置errno
·struct sockaddr *addr

//IPV4的地址族结构体
struct sockaddr_in{
    sa_family sin_family;  //AF_INET
    in_port_t sin_port;  //端口号
    struct in_addr sin_addr;  //IP地址结构体
};
struct in_addr{uint32_t s_addr};  //IP地址
sendto();//发送数据
ssize_t sendto(int fd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);//flags取0

·buf:要发送的数据
·flags:默认设置为0
·dest_addr:目标地址族结构体

recefrom();//接受数据
ssize_t recvfrom(int fd, const void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t addrlen);//flags取0

·buf:要接收的数据
·flags:默认设置为0
·dest_addr:数据来源地址族结构体

1.2 UDP相关函数介绍

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值