udp 原理 使用 iOS 基于socket的学习

UDP介绍:    https://baike.baidu.com/item/UDP/571511?fr=aladdin   详细介绍

总结:

1、无连接连接  

2、UDP传输的可靠性由应用层负责  应用层协议:DNS 53  TFTP 69  SNMP 161

3、过程中延迟小、数据传输效率高,适合对可靠性要求不高的应用程序


udp 原理 使用 iOS 基于socket的学习_第1张图片

4、UDP 结构



udp 原理 使用 iOS 基于socket的学习_第2张图片

5、分层封装:在TCP/IP协议层次模型中,UDP位于IP层之上。应用程序访问UDP层然后使用IP层传送数据报。IP层的报头指明了源主机和目的主机地址,而UDP层的报头指明了主机上的源端口和目的端口。


udp 包括接收和发送  如下代码解析:

发送:sendto()

简述:向一指定目的地发送数据。

#include

int PASCAL FAR sendto( SOCKET socket, const char FAR* buffer, int length:buf, int flags, const struct sockaddr FAR* to, int tolen);

socket:一个标识套接口的描述字。

buffer:包含待发送数据的缓冲区。

length:buf缓冲区中数据的长度。

flags:调用方式标志位。

to:(可选)指针,指向目的套接口的地址。

tolen:to所指地址的长度。

使用只需制定目标 desAddIP  port  即可 


接收: recvfrom()

简述:接收一个数据报并保存源地址。

#include

int PASCAL FAR recvfrom( SOCKET s, char FAR* buf, int len, int flags,

struct sockaddr FAR* from, int FAR* fromlen);

s:标识一个已连接套接口的描述字。

buf:接收数据缓冲区。

len:缓冲区长度。

flags:调用操作方式。

from:(可选)指针,指向装有源地址的缓冲区。

fromlen:(可选)指针,指向from缓冲区长度值。

使用只需制定目标  在原来的socket 绑定port  监听  port 即可

封装oc代码:


udp 原理 使用 iOS 基于socket的学习_第3张图片


udp 原理 使用 iOS 基于socket的学习_第4张图片



github  代码:   过几天就放源代码

你可能感兴趣的:(udp 原理 使用 iOS 基于socket的学习)