我们已经掌握了网络编程的重要部分,通过这些知识,我们能够编写基于TCP协议的大部分网络程序。现在,Linux平台上的许多程序都采用了我们学到的这些技术。本章节,我们将简要介绍基于UDP协议的网络程序。在此之前,我们先了解两个常用函数:int recvfrom(int sockfd, void buf, int len, unsigned int flags, struct sockaddr from, int fromlen) 和 int sendto(int sockfd, const void msg, int len, unsigned int flags, struct sockaddr *to, int tolen)。sockfd、buf和len的含义类似于read和write函数,分别表示套接字描述符、发送或接收的缓冲区以及数据大小。recvfrom负责从sockfd接收数据,并将发送者的信息存储在from中,如果对发送者的信息不感兴趣,可以将from和fromlen设置为NULL。sendto则负责向to发送数据,to中存储了接收方的详细信息。