当前位置: 首页 > news >正文

嵌入式学习day32 网络

htons();//host to network short  将端口号转换为网络通信中的大端存储 eg:htons(50000);

ntohs();//host to network short  将大端存储转换为主机端口号

inet_addr();将IP地址转换为二进制   eg:inet_addr(192.168.1.170);

inet_ntoa();//inet_network to address  将二进制ip地址转换为16进制地址型

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地址信息的空间首地址(发送端的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个字节)

相关文章:

嵌入式学习day32 网络

htons();//host to network short 将端口号转换为网络通信中的大端存储 eg:htons(50000); ntohs();//host to network short 将大端存储转换为主机端口号 inet_addr();将IP地址转换为二进制 eg:inet_addr(192.168.1.170); inet_ntoa()…...

算法D33 | 贪心算法3 | 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

1005.K次取反后最大化的数组和 本题简单一些,估计大家不用想着贪心 ,用自己直觉也会有思路。 代码随想录 Python: class Solution:def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:nums.sort(keylambda x: abs(x), reverseT…...

html地铁跑酷

下面是一个简单的HTML代码来展示一个地铁跑酷游戏&#xff1a; <!DOCTYPE html> <html> <head><title>地铁跑酷</title><style>#player {position: absolute;top: 0;left: 0;width: 50px;height: 50px;background-color: red;}</style…...

利用GPT开发应用001:GPT基础知识及LLM发展

文章目录 一、惊艳的GPT二、大语言模型LLMs三、自然语言处理NLP四、大语言模型LLM发展 一、惊艳的GPT 想象一下&#xff0c;您可以与计算机的交流速度与与朋友交流一样快。那会是什么样子&#xff1f;您可以创建哪些应用程序&#xff1f;这正是OpenAI正在助力构建的世界&#x…...

Golang Ants 构建协程池

构建的协程池实现两个目标&#xff1a; 1、限制协程池里开启的协程数量 2、当任务数大于协程数时&#xff0c;一个协程可以同时处理多个任务 3、监控是哪个协程ID处理了具体的任务 package mainimport ("fmt""runtime""strconv""string…...

【金三银四】面试题汇总(持续编写中)

Java八股文面试题汇总&#xff08;持续编写中~&#xff09; Java基础集合JUCJVM 数据库MySQLRedis 框架篇SSMSpringBoot 数据结构与算法数据结构与算法--汇总篇27道基础算法题&#xff0c;学完让你对算法有豁然开朗的感觉&#xff08;推荐小白&#xff09; 消息中间件RabbitMQK…...

Hive的数据存储

Hive的数据存储在HDFS的&#xff1a;/user/hive/warehouse中 The /user folder in HDFS is a directory typically used to store user-specific data and configurations. It serves as the home directory for Hadoop users, analogous to the /home directory in Unix-like …...

ORACLE 如何使用dblink实现跨库访问

dbLink是简称&#xff0c;全称是databaselink。database link是定义一个数据库到另一个数据库的路径的对象&#xff0c;database link允许你查询远程表及执行远程程序。在任何分布式环境里&#xff0c;database都是必要的。另外要注意的是database link是单向的连接。在创建dat…...

Sentinel 面试题及答案整理,最新面试题

Sentinel的流量控制规则有哪些&#xff0c;各自的作用是什么&#xff1f; Sentinel的流量控制规则主要包括以下几种&#xff1a; 1、QPS&#xff08;每秒查询量&#xff09;限流&#xff1a; 限制资源每秒的请求次数&#xff0c;适用于控制高频访问。 2、线程数限流&#xf…...

Qt在windows编译hiredis依赖库

目录 0 前言1 Qt安装遇到的问题2 hiredis源码下载2.0 redis源码下载2.1 hiredis源码下载2.2 编译hiredis源码2.3 遇到的问题列表参考资料0 前言 当前参与的项目需要用Qt对redis进行操作,以前没玩过这块,顺手记下笔记梳理起来~ 1 Qt安装 安装版本下载:https://download.qt…...

【工作向】protobuf编译生成pb.cc和pb.py文件

序言 首先通过protoc --version查看protoc版本&#xff0c;避免pb文件生成方和使用方版本不一致 1. 生成pb.cc 生成命令 protoc -I${proto_file_dir} --cpp_out${pb_file_dir} *.proto参数&#xff1a; -I表示 proto 文件的路径&#xff1b; --cpp_out 表示输出路径&#xff…...

android 快速实现 垂直SeekBar(VerticalSeekBar)

1.话不多说上源码&#xff1a; package com.example.widget;import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.MotionEvent;/*** Class to create a vertical slider*/ public class VerticalSeekBar…...

算法刷题day23:双指针

目录 引言概念一、牛的学术圈I二、最长连续不重复序列三、数组元素的目标和四、判断子序列五、日志统计六、统计子矩阵 引言 关于这个双指针算法&#xff0c;主要是用来处理枚举子区间的事&#xff0c;时间复杂度从 O ( N 2 ) O(N^2) O(N2) 降为 O ( N ) O(N) O(N) &#xf…...

学术论文GPT的源码解读与二次开发:从ChatPaper到gpt_academic

前言 本文的前两个部分最早是属于此旧文的《学术论文GPT的源码解读与微调&#xff1a;从ChatPaper到七月论文审稿GPT第1版》&#xff0c;但为了每一篇文章各自的内容更好的呈现&#xff0c;于是我今天做了以下三个改动 原来属于mamba第五部分的「Mamba近似工作之线性Transfor…...

报表生成器FastReport .Net用户指南:表达式(下)

在上一篇文章《报表生成器FastReport .Net用户指南&#xff1a;表达式&#xff08;上&#xff09;》中&#xff0c;我们已经介绍了表达式中的表达式编辑器、引用报告对象、使用 .Net 函数、数据元素参考这四部分&#xff0c;接下来让我们继续介绍表达式中的&#xff1a;引用数据…...

JavaScript极速入门(1)

初识JavaScript JavaScript是什么 JavaScript(简称JS),是一个脚本语言,解释型或者即时编译型语言.虽然它是作为开发Web页面的脚本语言而著名,但是也应用到了很多非浏览器的环境中. 看似这门语言叫JavaScript,其实在最初发明之初,这门语言的名字其实是在蹭Java的热度,实际上和…...

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:浮层)

设置组件的遮罩文本。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 overlay overlay(value: string | CustomBuilder, options?: { align?: Alignment; offset?: { x?: number; y?: number } })…...

Meta AI移动设备上部署LLM的新框架MobileLLM

Meta AI 研究团队推出的 MobileLLM 标志着大语言模型(LLMs)朝着模拟人类理解和生成自然语言迈出了革命性的一步。LLMs 在处理和分析大量数据集方面的能力已经显著影响了自动化客户服务、语言翻译和内容创作等多个领域。然而,由于传统 LLMs 在计算和存储资源方面的需求庞大,…...

使用Tesseract-OCR对PDF等图片文件进行文字识别

安装 用 Homebrew 来安装 Tesseract brew install tesseract 2. 完成 tessearact 的安装后&#xff0c;还需要安装中文数据包&#xff0c;执行以下两个操作&#xff0c; brew info tesseract 执行这个指令的目的&#xff0c;是找到 Homebrew 把 tesseract 安装在文件夹内&am…...

部署YOLOv8模型的实用常见场景

可以的话&#xff0c;GitHub上点个小心心&#xff0c;翻不了墙的xdm&#xff0c;csdn也可以点个赞&#xff0c;谢谢啦 车流量检测&#xff08;开源代码github&#xff09;&#xff1a; test3 meiqisheng/YOLOv8-DeepSORT-Object-Tracking (github.com) 车牌检测&#xff0…...

WeKnora部署避坑指南:解决端口占用、模型加载等常见问题

WeKnora部署避坑指南&#xff1a;解决端口占用、模型加载等常见问题 1. 为什么需要这份避坑指南&#xff1f; WeKnora作为一款开箱即用的知识库问答系统&#xff0c;虽然设计上追求极简部署&#xff0c;但在实际运行中仍然可能遇到一些技术问题。这些问题往往不是产品本身的缺…...

KMS_VL_ALL_AIO:智能激活脚本的高效办公解决方案

KMS_VL_ALL_AIO&#xff1a;智能激活脚本的高效办公解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 在数字化办公环境中&#xff0c;Windows系统和Office办公套件的激活管理常常成为用户…...

Android与SpringBoot的轻量级数据桥梁——OkHttp3实战解析

1. OkHttp3与SpringBoot的黄金组合 第一次用OkHttp3对接SpringBoot后端时&#xff0c;我盯着满屏的404错误差点崩溃。后来才发现&#xff0c;原来是因为手机和电脑不在同一个WiFi下。这种看似低级的错误&#xff0c;恰恰是新手最容易踩的坑。OkHttp3作为Android端最流行的网络请…...

造相 Z-Image镜像使用指南:显存监控条预警机制与OOM防护策略

造相 Z-Image镜像使用指南&#xff1a;显存监控条预警机制与OOM防护策略 1. 引言&#xff1a;为什么你的AI绘画服务总崩溃&#xff1f; 如果你用过一些开源的文生图模型&#xff0c;大概率遇到过这种情况&#xff1a;兴致勃勃地输入一段描述&#xff0c;点击生成&#xff0c;…...

MATLAB伪彩色增强实战:从灰度分层到频域处理的完整指南

1. 伪彩色增强技术入门指南 第一次接触伪彩色增强是在研究生课题中&#xff0c;当时需要分析一批医学X光片。盯着那些灰蒙蒙的片子看了三天后&#xff0c;我突然意识到&#xff1a;人眼对色彩差异的敏感度&#xff0c;确实远超对灰度变化的感知。这就是伪彩色技术的核心价值——…...

别再只调包了!深入对比VGG16、ResNet等9大模型在农业病害识别上的实战表现(附数据集)

深度视觉模型在农业病害识别中的实战评测&#xff1a;从特征提取到部署优化的全流程解析 当一片叶子出现褐色斑点时&#xff0c;农民往往需要等待数天才能获得实验室检测结果——这种传统诊断方式的滞后性&#xff0c;每年造成全球约20-40%的农作物损失。计算机视觉技术的突破正…...

Stable Yogi Leather-Dress-Collection开源模型应用:ACG创作者无需订阅即可拥有的本地皮衣工具

Stable Yogi Leather-Dress-Collection开源模型应用&#xff1a;ACG创作者无需订阅即可拥有的本地皮衣工具 1. 项目概述 Stable Yogi Leather-Dress-Collection是一款专为动漫创作者设计的2.5D皮衣穿搭生成工具。基于Stable Diffusion v1.5和Anything V5动漫底座模型开发&…...

MatLab实战:用移动最小二乘法(MLS)实现图像变形(附源码改进版)

MatLab实战&#xff1a;用移动最小二乘法&#xff08;MLS&#xff09;实现高精度图像变形 在数字图像处理领域&#xff0c;图像变形技术一直是个既基础又关键的课题。无论是影视特效中的角色变形&#xff0c;还是医学图像分析中的器官配准&#xff0c;甚至是工业检测中的零件对…...

【C++ 面试突击 · 05】大厂高频面试题:从内联函数到内存管理全梳理

目录 一、什么是inline函数&#xff1f; 二、inline函数的优缺点&#xff1f; 三、inline和宏定义的比较&#xff1f; 四、虚函数&#xff08;virtual&#xff09;可以是内联函数&#xff08;inline&#xff09;吗&#xff1f; 五、C中struct和class的区别&#xff1f; 六…...

如何用开源OCR突破效率瓶颈?Umi-OCR三大核心优势深度解析

如何用开源OCR突破效率瓶颈&#xff1f;Umi-OCR三大核心优势深度解析 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件&#xff0c;适用于Windows系统&#xff0c;支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/G…...