Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Linux下的UDP通信

今天我们介绍如何编写Linux下的UDP程序,关于TCP程序可以参考这里:http://www.linuxidc.com/Linux/2012-06/61802.htm由于UDP通信不需要事先建立连接,因此不需要TCP中的connect函数。服务器端的步骤如下:1. socket:      建立一个socket2. bind:          将这个socket绑定在某个端口上(AF_INET)3. recvfrom:  如果没有客户端发起请求,则会阻塞在这个函数里4. close:        通信完成后关闭socket客户端的步骤如下:1. socket:      建立一个socket
2. sendto:     相服务器的某个端口发起请求(AF_INET)
3. close:        通信完成后关闭socket
可以看到,和TCP相比,步骤少了一些。
这里我们用到了两个新的函数:int recvfrom(int sockfd, void * buf, size_t len, int flags, struct sockaddr * src_addr, socklen_t * addrlen);
int sendto(int sockfd, const void * buf, size_t len, int flags, const struct sockaddr * dest_addr, socklen_t addrlen);

recvfrom用于接收数据,sendto用于发送数据
recvfrom:socket:socket套接字buf:接收到的数据的存放位置flags:一般情况下为0src_addr:接收的源地址addrlen:地址长度
sendto:socket:socket套接字buf:要发送的数据的起始地址flags:一般情况下为0dest_addr:发送到的目的地址addrlen:地址长度 还是先上代码:Makefile:
  1. all: server.c client.c  
  2.     gcc -Wall client.c -o client  
  3.     gcc -Wall server.c -o server  
  4.   
  5. clean:  
  6.     rm -rf *.o client server