socket之数据报套接字(UDP)
数据报套接字(SOCK_DGRAM) 数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错。使用数据报协议UDP协议。
socket之UDP实现
udp没有服务器和客户端的概念,但是我们为了和前一篇文章《Linux关于socket(TCP实现C/S)》相结合,进行总结TCP和UDP的区别,我们用代码实现UDP的服务端和客户端。
实现代码前,我们要知道UDP的写入是用sendto,读出使用recvfrom.而TCP读的话可以用read,send,写的话用recv,write
UDP不用实现TCP服务端的listen,accept,和客户端的connect,它直接创建完就可以使用,所以代码比较简洁。
以下是服务端代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/socket.h>
#include <netinet/in.h> /* for struct sockaddr_in*/
#include <sys/errno.h>
#include <signal.h>
//关于服务器udp的socket
void error_exit(char *name)
{
perror(name);
exit(-1);
}
int main(int argc,char *argv[])
{
int s