下图是基于UDP协议的客户端/服务器程序的一般流程:
图1.1 UDP协议通信流程
UDP套接口是无连接的、不可靠的数据报协议;
既然他不可靠为什么还要用呢?其一:当应用程序使用广播或多播时只能使用UDP协议;其二:由于他是无连接的,所以速度快。因为UDP套接口是无连接的,如果一方的数据报丢失,那另一方将无限等待,解决办法是设置一个超时。
建立UDP套接口时socket函数的第二个参数应该是SOCK_DGRAM,说明是建立一个UDP套接口;由于UDP是无连接的,所以服务器端并不需要listen或accept函数。
使用UDP套接字编程可以实现基于TCP/IP协议的面向无连接的通信,它分为服务器端和客户端两部分,其主要实现过程如图1.1所示。
下面介绍UDP网络编程的详细函数和过程:
1、socket函数:为了执行网络输入输出,一个进程必须做的第一件事就是调用socket函数获得一个文件描述符。-----------------------------------------------------------------
#include
int socket(int family,int type,int protocol);
返回:非负描述字---成功 -1--