UDP网络通讯
UDP报文结构:
- 16位源端口:用于记录发送端的端口号(占用两个字节)
- 16位目的端口:用于记录接收端的端口号(占用两个字节)
- 16位UDP长度:确定UDP报文总长度,(占用两个字节)
- 16位UDP校验和:接收端会首先知道即将发送来的数据的报文总长度,等数据来了之后,将数据的UPD校验和和已经知道的正确的报文总长度对比,如果不相同,直接丢掉UDP数据。(占用两个字节)
UDP编程流程
客户端代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/socket.h>
int main()
{
int sockfd = socket(AF_INET,SOCK_DGRAM,0);
if(-1 == sockfd)
{
exit(1);
}
struct sockaddr_in saddr;
memset(&saddr,0,sizeof(saddr