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

news/2024/7/27 8:26:57/文章来源:https://blog.csdn.net/PTnzl/article/details/136517556

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_996208.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kakarot:当今以太坊的未来

1. 引言 前序博客: Kakarot:部署在Starknet上的ZK-EVM type 3 随着 Kakarot zkEVM 即将发布测试网,想重申下 Kakarot zkEVM 的愿景为: 为什么在rollup空间中还需要另一个 zkEVM? 开源代码见: https:/…

现代分布式系统架构的权衡分析

介绍 现代软件系统,特别是遵循分布式架构的系统,以其复杂性和可变性而闻名。这些系统由许多元素组成,每个元素都引入潜在的权衡,可能影响成本、性能、可伸缩性和可靠性等因素。对于导航软件现代化和转型领域的IT架构师、业务分析师…

MyBatis3源码深度解析(四)Statement

文章目录 前言2.4 Statement2.4.1 java.sql.Statement2.4.1.1 创建Statement对象2.4.1.2 执行查询SQL语句2.4.1.3 执行更新SQL语句2.4.1.4 执行不确定类型的SQL语句2.4.1.5 批量执行SQL语句 2.4.2 java.sql.PreparedStatement2.4.2.1 创建PreparedStatement对象2.4.2.2 占位符的…

centos7中python3.10找不到openssl解决方案

如果有用其他方法安装了其他版本openssl,记得卸载其他的openssl,删除其他的openssl相关文件。 yum remove openssl* rm -rf ***下载最新版的openssl文件 按照官网安装方法安装openssl 官方安装地址https://docs.python.org/3/using/unix.html#on-linu…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:RotationGesture)

用于触发旋转手势事件,触发旋转手势的最少手指为2指,最大为5指,最小改变度数为1度。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 接口 RotationGesture(value?: …

SQL Server基础指令(创建与检索)

数据库demo 数据库RUNOOB 表Websites 元素: 创建 创建数据库 create database xxx Create database school 创建数据表 create table xxx create table student 数据表插入记录 insert into 第一种形式无需指定要插入数据的列名,只需提供被插入的…

【算法训练营】:数字三角形,背包问题1,背包问题2(python实现)

数字三角形 时间限制&#xff1a;2 sec 空间限制&#xff1a;256 MB 问题描述 给定一个高度为 n 的“数字三角形”&#xff0c;其中第 i 行&#xff08;1<i<n&#xff09;有 i 个数。&#xff08;例子如下图所示&#xff09; 初始时&#xff0c;你站在“数字三角形”的顶…

卡哇伊龙猫404页面源码

卡哇伊龙猫404页面&#xff0c;具有动态下雨&#xff0c;龙猫微笑等动态特效 HTML单页源码&#xff0c;喜欢的朋友可以下载 下载地址 https://www.qqmu.com/2416.html

初次安装WordPress后如何进行网站设置(主题安装、插件安装、网站美化、网站备份、安全性提升、伪静态、多域名设置等)WordPress网站常见问题设置指南

专栏地址: WordPress建站主题美化系列教程https://blog.csdn.net/seeker1994/category_12184577.html 一文搞懂WordPress是什么?为什么用它建站?怎么安装与部署? 使用腾讯云快速搭建WordPress网站流程详解 ...... 1. 前言 专栏上几篇文章介绍了小白零基础如何使用腾讯…

文件定时自动备份方法

备份文件&#xff1a;数据安全的坚实保障 在数字化时代&#xff0c;我们的生活和工作已经离不开电子文件。这些文件可能包含重要的工作资料、珍贵的个人照片、无法替代的创意作品等。然而&#xff0c;电脑硬盘的损坏、病毒的侵袭、甚至误操作都可能导致文件丢失&#xff0c;给…

【硬件工程师面经整理21_其它】

文章目录 1 为何电源的滤波电路常常是大电容配合小电容滤波2 小信号敏感信号是什么&#xff0c;如何保护敏感信号3 555定时器4 CMOS不用输入管脚该怎么处理。5 为什么一个标准的倒相器中 P 管的宽长比要比 N 管的宽长比大&#xff1f;6 S11和反射系数和插损的关系7 眼图的功能8…

44、网络编程/数据库相关操作练习20240306

一、代码实现数据库的创建&#xff08;员工信息表&#xff09;&#xff0c;并存储员工信息&#xff08;工号、姓名、薪资&#xff09;&#xff0c;能实现增加人员信息、删除人员信息、修改人员薪资操作。 代码&#xff1a; #include<myhead.h>int do_update(sqlite3 *p…

计算机网络|Socket

文章目录 Socket并发socket Socket Socket是一种工作在TCP/IP协议栈上的API。 端口用于区分不同应用&#xff0c;IP地址用于区分不同主机。 以下是某一个服务器的socket代码。 其中with是python中的一个语法糖&#xff0c;代表当代码块离开with时&#xff0c;自动对s进行销毁…

pinia报错does not provide an export named ‘hasInjectionContext

你们好&#xff0c;我是金金金。 场景 我这里是uniappvue3编写的一个小程序项目&#xff0c;在集成pinia过程当中遇到此问题&#xff0c;报错请求的模块 未提供 导出名hasInjectionContext&#xff08;位于 pinia.mjs:6:10&#xff09; 以下我项目当中vue和pinia的具体依赖版本…

学习vue3使用在线官方开发环境play.vuejs.org进行测试

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a; http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbach…

如何使用 CSS object-fit 进行图片的缩放和裁剪

简介 在处理图片时&#xff0c;你可能会遇到需要保持原始宽高比的情况。保持宽高比可以防止图片被拉伸或压缩而出现失真。解决这个问题的常见方法是使用 background-image CSS 属性。更现代的方法是使用 object-fit CSS 属性。 在本文中&#xff0c;你将探索 object-fit CSS …

Pytorch 复习总结 6

Pytorch 复习总结&#xff0c;仅供笔者使用&#xff0c;参考教材&#xff1a; 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为&#xff1a;Pytorch 计算机视觉。 本文先介绍了计算机视觉中两种常见的改进模型泛化性能的方法&#xff1a…

子矩阵的和 刷题笔记 {二维前缀和}

首先我们的目标是让 s[i][j]表示为其左方和上方形成的矩阵所有元素的和 加上s[i-1][j]和s[i][j-1]后 s[i-1][j-1]部分重复了所以减去 最后加上a[i][j]即可完成目标 s[i][j]s[i-1][j]s[i][j-1]-s[i-1][j-1]a[i][j]; 然后看题目要求 要求x1,y1,x2,y2围成的小正方形内的元素和…

Vue中如何进行非父子组件通信?

当谈及Vue中非父子组件通信时&#xff0c;我们通常会考虑使用Event Bus或者Vuex来实现。以下是我为您准备的一些面试题内容和示例代码&#xff1a; 面试题&#xff1a;“Vue中如何进行非父子组件通信&#xff1f;” 在Vue中&#xff0c;父子组件之间的通信通常是通过props和e…

ChatGPT提问技巧——控制温度和TOP-P样本

ChatGPT提问技巧——控制温度和TOP-P样本 “控制温度和Top-P抽样”在自然语言处理中&#xff0c;控制温度是指通过调整生成文本的随机性和多样性&#xff0c;而Top-P抽样是一种生成文本的策略&#xff0c;它选择概率最高的前P个词作为候选词汇。这两个技术常用于生成文本的质量…