1.recvfrom
     ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
                         struct sockaddr *src_addr, socklen_t *addrlen);
     功能:
            从套接字中  接收数据
     参数:
         sockfd:                                                                                                                                                             套接字  文件描述符
         buf:                                                                                                                                                                存放数据空间  首地址
         flags:                                                                                                                                                             属性 默认为0 
         src_addr:                                                                                                                                                             存放IP地址信息的空间首地址
         addrlen:                                                                                                                                                             存放接收到IP地址大小空间的首地址
     返回值:
         成功 返回  实际接收字节数
         失败 返回-1 
2.修改虚拟机到桥接模式:
     点击"虚拟机"
     点击"设置"
     点击"网络适配器"
     选择"桥接模式"
     点击"确定"
3.将网卡桥接到无线网卡
     点击"编辑"
     点击"虚拟网络编辑器"
     点击"更改设置"
4.在Ubuntu中重启网络服务
     sudo /etc/init.d/networking restart 
ifconfig
2.bind 
     int bind(int sockfd, const struct sockaddr *addr,
                 socklen_t addrlen);
     功能:
         在 套接字 上绑定一个    IP地址和端口号
     参数:
         sockfd:                                                                                                                                                             套接字文件  描述符
         addr:                                                                                                                                                             绑定IP地址空间首地址
         addrlen:                                                                                                                                                             绑定IP地址的长度
     返回值:
         成功 返回  0 
         失败  返回  -1 
 3.UDP编程:
     发端:socket -> sendto -> close 
     收端:  socket -> bind -> recvfrom -> close 
练习:
     编写程序实现两台主机间传输一个文件
     ./recv 
     
     ./send 
     a.txt 
4.UDP需要注意的细节点:
     1.UDP是无连接:                                                                                                                                                           发端 退出,收端没有任何影响                                                                                                                                                             
     2.UDP发送数据上限                                                                                                                                                             最好不要超过1500个字节                                                                                                                                                             
     3.UDP是不安全不可靠的                                                                                                                                                             连续且快速的传输数据容易产生数据丢失
5.wireshark
                     抓包工具
  操作流程:
     1.sudo wireshark
       打开wireshark抓包工具
     2.选择抓取数据包的网卡
       any
     3.执行通信的代码
     4.停止通信
     5.设定过滤条件
         ip.addr == IP地址 
         udp 
         tcp 
         udp.port == 端口
6.UDP包头长度:         8个字节
     源端口号                                                                                                                                                          (2个字节)
     目的端口号                                                                                                                                                            2个字节)
     长度                                                                                                                                                             (2个字节)
     校验和                                                                                                                                                          (2个字节)