5.套接字编程:socket编程
基于UDP协议的socket客户端与服务端通信编程
服务端:
创建套接字;
在内核创建struct socket结构体,使进程和网卡之间建立联系
-1. int socket(int domain, int type, int protocol);// 创建套接字
domain:地址域 AF_INET---IPV4地址域
type:套接字类型
SOCK_STREAM 流式套接字
SOCK_DGRAM 数据报套接字
protocol:传输层协议类型
0--默认
IPPROTO_TCP
IPPROTO_UDP
返回值:套接字操作句柄--文件描述符
-2. int bind(int sockfd,const sockaddr*addr,socklen_t addrlen);//为套接字绑定地址信息
在socket结构体中描述符这个socket处理那个地址和端口的数据
服务端绑定地址的目的:告诉操作系统网卡接受到
数据的时候,那个地址和端口的数据应该放到这个socket的接受队列中
bind绑定只能绑定本机存在的地址:
-3. ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);
-4.ssize_t sendto(int sockfd, void *buf, size_t len, int flags, struct sockaddr *dest_addr, socklen_t len);
-5. int close(int fd);//关闭套接字
udp编程简单实现;
使用C++封装一个udpsocket类,来实现socket的简单操作
创建套接字
为套接字绑定地址信息
发送数据
接受数据
关闭套接字