一、循环服务器的定义
循环服务器描述了在一个时刻只处理一个请求的服务器实现方式,通过在单线程内设置循环控制实现对多个客户端请求的逐一响应,这种服务器的设计、编程、调试和修改往往比较容易去实现。在循环执行的服务器对预期的负载能提供足够的反应速度时常使用这种类型的服务器。循环服务器有有UDP循环服务器和TCP循环服务器两种类型。
二、UDP循环服务器
UDP循环服务器的实现方法:UDP服务器每次从套接字上读取一个客户端的请求,再对请求进行处理,然后将结果返回给客户机。
对于此类服务器,由于UDP是非面向连接的,没有一个客户端可以老是占住服务端,因此UDP循环服务器对于每一个客户机的请求总是能够满足。
参考代码如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#define PORT 2222
#define MAX_SIZE 512
int main()
{
int sockfd;
int len = sizeof(struct sockaddr)