嵌入式学习日记 25

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个字节)


 

相关推荐

  1. 嵌入学习日记 25

    2024-03-13 14:54:01       22 阅读
  2. 嵌入学习日记 27

    2024-03-13 14:54:01       19 阅读
  3. 嵌入学习日记 18

    2024-03-13 14:54:01       24 阅读
  4. 嵌入学习day22 Linux

    2024-03-13 14:54:01       28 阅读
  5. 嵌入学习笔记day28

    2024-03-13 14:54:01       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 14:54:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 14:54:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 14:54:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 14:54:01       20 阅读

热门阅读

  1. ES6中 字符串的方法

    2024-03-13 14:54:01       20 阅读
  2. 探索未来科技:量子计算的前沿与挑战

    2024-03-13 14:54:01       20 阅读
  3. 如何实现用django读写elasticsearch

    2024-03-13 14:54:01       21 阅读
  4. YOLO-World:实时开放词汇目标检测

    2024-03-13 14:54:01       22 阅读
  5. udp通信程序(桥接模式)

    2024-03-13 14:54:01       19 阅读
  6. 在 Android 上部署预训练模型

    2024-03-13 14:54:01       20 阅读
  7. Redis 中 redis-benchmark 详解及参数介绍

    2024-03-13 14:54:01       21 阅读
  8. 前端面试-浏览器相关

    2024-03-13 14:54:01       17 阅读