小工具知识网

当前位置: 首页 > 行业知识 > 嵌入式学习34-网络通信2 bind

行业知识

嵌入式学习34-网络通信2 bind

2026-11-08 01:35:26 来源:互联网转载

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

上一篇:全校的英语怎么写?

下一篇:易语言内存管理秘籍,释放内存操作指南,助你轻松掌握内存管理技巧!