简单的UDP网络编程
本文,我们将编写一个基于UDP实现的简单网络服务器与客户端。
一. UDP协议初识
UDP协议又叫
用户数据报协议,是传输层的一种协议。根据该协议在进行数据传输时,两台主机之间不需要相互连接,直接根据对方的IP地址和端口号进行数据传送。所以不用花费时间去连接主机,因此根据该协议进行传输时,速度会相对TCP协议快一点;但同时数据传送错误的概率相对TCP协议会较高;而且基于UDP协议进行数据传输,传输的基本单位是数据报,即源主机一次发送了多少字节的数据,目的主机一次就应将该数据全部接收。
所以UDP协议的特点有:
(1)传输层协议;
(2)无连接;
(3)不可靠传输;
(4)面向数据报。
二. socket编程接口
我们之前提到过,“IP地址+端口号”也就是socket可以唯一标识网络上某一主机的某一进程。所以我们要实现网络通信,我们要利用到socket。这里先介绍一些与socket有关的函数接口与结构。
1. sockaddr结构
socket API即套接字接口是一层抽象的网络编程接口,适用于各种底层网络协议,如IPv4和IPv6及UNIX Domain Socket。然而,各种网络协议的地址格式并不相同,所以就有以下几种地址格式。
这些结构体都可以用于储存套接字等的相关信息。其中,sockaddr结构是泛型接口,适用于各种套接