20221020 UdpServer

LVGL v8.3 图片显示与解码缓存实战:PNG 上屏、C 数组与文件双方案 LVGL v8.3 图片两种存储方式、PNG/JPG 上屏解码器挂载、LV_IMG_CACHE_DEF_SIZE 缓存调优、手动预解码头像有效性判断,及"缓存被动画清空"真实踩坑。 阅读详情

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <string.h>
#include <unistd.h>

#define ERR_MSG(msg) do{\
    fprintf(stderr,"line:%d",__LINE__);\
    perror(msg);\
}while(0)

int main(int argc, const char *argv[])
{
    //创建报式套接字 来自 man 2 socket
    int sfd = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); 
    //AF_INET表示IPv4
    //SOCK_DGREAM表示报式套接字,用于UDP
    //0表示指定协议 0表示默认 TCP:IPPROTO_TCP,UDP:IPPROTO_UDP;
    if (sfd < 0)
    {
        ERR_MSG("socket");
        return -1;
    }
    //填充服务器的IP和端口-->把IP和端口装进这个地址信息结构体里面
    struct sockaddr_in sin;  //定义一个地址信息结构体,存储IP和端口,来自man 7 ip
    sin.sin_family         = AF_INET; //表示IPv4
    sin.sin_port         = htons(8888);  //用哪个端口,范围是1024~49151
    sin.sin_addr.s_addr = inet_addr("192.168.249.132"); //服务器的IP

    //绑定服务器自身的IP和端口到套接字上--->必须绑定
    if (bind(sfd,(struct sockaddr *)&sin,sizeof(sin)) < 0)  //"IP&端口"与"套接字"绑定
    {
         ERR_MSG("bind");
         return -1;
    }
    printf("bind success\n");

    //定义一个地址信息结构体,存储客户端发来数据的的“IP”和“端口”
    struct sockaddr_in cin;
    socklen_t addrlen = sizeof(cin);         //cin地址信息结构体的大小

    char buf[128] = "";
    ssize_t res = 0;
    while(1)
    {
        //接收数据
        bzero(buf,sizeof(buf)); // 接收数据前先清空数组
        res = recvfrom(sfd,buf,sizeof(buf),0,(struct sockaddr *)&cin,&addrlen); //接收数据包,并知道发送数据包的主机的IP和端口
        if (res < 0)
        {
            ERR_MSG("recvfrom");
            return -1;
        }
        printf("[%s:%d]:%s\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),buf);  //所接收数据要由网络字节序转换为主机字节序
        //发送数据:谁发给我,我就返回给谁。发送数据用sendto函数
        //the size of the buffer in len-->sizeof(buf),而不是strlen(buf)
        strcat(buf,"*_*");
        if (sendto(sfd,buf,strlen(buf),0,(struct sockaddr *)&cin ,addrlen ) < 0)
        {
            ERR_MSG("sendto");
            return -1;
        }
        printf("发送成功\n");
        

    }
        //关闭文件描述符
        close(sfd);
    


    return 0;
}

Ubuntu 基础配置 (WSL2)和操作命令 在 WSL2 Ubuntu 环境中,通过更新系统、配置时区与语言环境、安装常用工具(如 git、vim、htop)提升开发效率。可选配置 OpenSSH 服务器并设置自启动(推荐使用 systemd 或 Windows 任务计划程序),实现远程连接。建议优先使用 VS Code Remote - WSL 插件进行无缝远程开发,避免手动 SSH 配置,简化流程并增强安全性。 阅读详情

相关推荐

第 1 步:基础类型与枚举

Enums.cs(约 55 行)依赖:无(只完成后:编译通过,后续所有文件都能用这三个枚举。

大坡3D软件开发 228

static 的三种用法:C 语言里一个关键字的三张面孔

本文系统讲解 C 语言中 static 关键字的三种用法:修饰局部变量延长生命周期、修饰全局变量与函数限制作用域到本文件。通过一个包含三个文件的完整工程示例对照演示,并从存储期、作用域与链接性三个属性解释其统一原理,最后补充单元测试框架偏爱 static 函数的工程实践。

大模型全栈工程师 · Thanks_ks 306

全球第一开源云ERP Odoo操作手册 模块安装和界面汉化指南

Odoo 的功能包含在不同的模块中, 刚创建的数据库除 Odoo 的核心模块外, 其它模块并没有被安装到系统中,你可以根据需要安装它们。本节将介绍安装模块和界面汉化的相关知识。

weixin_44793763的博客 2073

Ubuntu26.04环境中如何记录并查看终端命令行的输入输出

在Ubuntu 26.4系统环境中,有时候我们需要记录终端命令行的输入输出信息,防止系统关机或者重启后这些信息找不到了,以便我们后期查看这些终端命令行的相关输入以及打印输出。~/terminal-logs/$(date +%Y%m%d-%H%M%S).log:在~/terminal-logs目录下创建带时间的日志文件。(2)如果只想输出“关键字”的信息使用grep命令。(1)如果想查看全部信息,使用cat命令。-a:追加内容,不覆盖前面又有信息。-n:的意思是显示行号信息。-f:flush刷盘。

duanjianbo3330的专栏 81

Vscode远程免密连接Linux虚拟机,并配置C/C++运行环境

目前想要深入学习在Linux,也为了方便编写C/C++程序。Linux的环境里一般自带有c++的编译环境,如果没有安装gcc和g++等编译器也比较便利。但是在虚拟机里用vim编写C++程序又不得劲,因此打算使用vscode远程连接Linux虚拟机进行学习。为了防止自己以后还要再配置,重复踩坑,因此写下这篇博客用做记录。环境:windows11、VMware17、rocky linux9.1 ( 开源的CentOS9 )

m0_56779872的博客 8676

【Office激活】学校正版Office已激活成功仍弹出激活窗口

学校正版Office激活问题:已激活成功仍弹出激活窗口

ESCM_的博客 1万+

Ubuntu26.04终端命令行前缀提示信息如何加色显示

不知道大家有没有这样的苦闹,使用Ubuntu 26.04自己的终端命令行或者使用xshell等远程ssh软件,前缀提示信息“root@DESKTOP-2K99PJP:~#”和命令行的输出信息都是一种颜色白色的,不是很明显,如果终端命令行输出信息特别多的时候,往回翻找我们从哪里输入的特别费劲,尤其是查看日志信息等有几百上千行的信息打印的时候。因此需要有一个办法能够高亮终端命令行的前缀提示信息,以下分了2种操作分别对应root用户和普通用户。(1)root用户终端命令行提示信息增加高亮显示。

duanjianbo3330的专栏 244

Android系统内存和性能关系的调研

摘要:本文分析了低内存导致性能问题的判断方法和评估思路。通过监控/proc/vmstat中的allocstall_normal、pageoutrun等指标可判断内存回收频率,当MemFree、MemAvailable和Cached均低于500MB时可能出现明显卡顿。全文通过实验和理论验证分析,回答因内存瓶颈导致性能问题的一些分析和解决的思路。

jidapenglin28的专栏 129

Ubuntu Linux中安装WorkBuddy

使用Electron打包的桌面程序,在Linux下经常会遇到这个问题,在运行命令的后面加个。这时候有个常见的小坑,直接打开是不行的,我们可以看下他默认图标怎么启动程序的。就可以了,登录后也是正常的。我们先彻底修复一下,在desktop里面修改一下。直接通过dpkg安装即可,如果安装失败少什么依赖,可以执行。

逸鹏说道 367

深度解读 ABAP CDS View 中的 @Analytics.dataCategory: #FACT 注解

注解在 ABAP CDS View 中具有重要意义。它不仅定义了当前视图在数据模型中的角色,还为后续的分析和报告奠定了基础。在实际开发中,通过合理使用这一注解,可以显著提升数据模型的可用性和系统性能。无论是简单的 KPI 展示还是复杂的多维分析,这一注解都能发挥关键作用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 787

中远麒麟堡垒机 SQL注入漏洞复现

中远麒麟堡垒机/baoleiji/api/tokens接口处存在sql注入漏洞,未经身份认证的攻击者可通过该漏洞获取数据库敏感信息及凭证,最终可能导致服务器失陷。

0xSec 2995

用 VMware + Ubuntu + Docker 搭一套 Ansible 集群管理实验环境

Ansible 是目前主流的自动化运维工具,用来做配置下发、批量命令执行、应用部署和任务编排。它最大的特点是控制端写好「清单」和「任务」,Ansible 通过 SSH 把任务推到各台机器上执行。这是它和需要装 Agent 的工具(如 Zabbix 客户端模式)最直观的区别,也是它上手快、对现有环境侵入小的原因。

qq_39866533的博客 287

无监督学习与互信息

在机器学习中,获取大量高质量标注数据成本高昂。为解决此问题,无监督学习利用丰富的无标注数据成为研究重点。其中,互信息是衡量两个随机变量之间依赖关系的关键指标,能够捕捉非线性统计关联,非常适合处理非结构化数据。通过最大化神经网络中变量间的互信息,可以有效地从无标注数据中提取有用信息,提升模型在下游任务(如分类)的性能。互信息与熵密切相关,其值等于联合分布与边缘分布乘积间的KL散度,也可通过熵与条件熵的差值得出,具有对称性,并反映了已知一个变量后另一个变量不确定性的减少。

盼小辉丶的博客 3527

什么是 Redis 以及如何在系统(Ubuntu、Debian、AlmaLinux、Rocky 或 CentOS)上安装它

Redis是基于内存的高速数据存储系统,广泛用于缓存、会话管理和任务队列。在Ubuntu/Debian上用apt安装,AlmaLinux/Rocky/CentOS上用dnf安装,均通过systemctl enable --now redis-server启动并设为开机自启。使用redis-cli测试ping响应及set/get操作验证功能。务必配置bind 127.0.0.1和requirepass密码以保障安全,避免暴露于公网。适用于WordPress、Laravel等应用加速。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 287

YOLOv12改进策略【独家融合改进】| MobileNetV4+BiFPN,轻松实现降参涨点,适用专栏内所有的骨干替换

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 978

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Ubuntu学习笔记-配置Gitea通过https访问

本文记录在 Ubuntu(树莓派 aarch64)环境下为 Gitea 1.26.4 配置 HTTPS 访问的完整过程。先说明 HTTP 与 HTTPS 的差异及自签名证书的适用场景,再使用 OpenSSL 手动生成带 SAN 的本地自签名证书,依次完成创建证书目录、编写 openssl.cnf、生成 RSA 私钥与 CSR、自签名签发证书、校验证书与密钥匹配、设置文件权限等步骤;随后修改 Gitea 的 app.ini 将 ROOT_URL 切换为 https,并调整 Nginx 反向代理引用证书、开启

向往的是:佛祖堂前的鱼,静静听禅。 169

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ubuntu日常ollama

架构:Ollama 跑在 GPU1,ComfyUI 在 GPU0;优先 8B 档位,14B 短上下文可跑、长文本容易 OOM;Q4_K_M,约 5.2G,适合你的 3080 10G 卡,写 python、ComfyUI 节点脚本很好用Ollama。32B / 70B 系列:Q4 都要 18G+,会大量丢内存到 RAM,速度极慢。拉不下来,提示文件不存在Ollama。最小也是十几 B,10G 3080 不友好,不建议。,官方原版只有 30b / 480b,所以。,用哪个就开哪个,另一个关掉。

jekc2008的专栏 185

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Ubuntu 26.04系统中如何查看在终端命令行中的历史命令呢?

我们在Ubuntu系统相关操纵中最常用的就是使用终端命令行,而终端命令行有个问题就是当我们关闭,或者重启系统之后,曾经输入的命令找不到了,有时候我们需要往回查找曾经输入过哪些命令,因此需要找到一种方法能够记录曾经输入过的命令。其实在“/root/”路径中有一个文件明为“.bash_history”的文件夹,如果我们查看信息的话,发现里面记录着的就是我们输入的命令。注意:我这里说的命令就是指的是单纯的输入的命令,而非整个终端所有输入输出信息。相关操作:直接在终端命令行中输入“history”

duanjianbo3330的专栏 200

Ubuntu 修复 FinalShell 任务栏齿轮图标

FinalShell 可以正常启动,但任务栏显示默认齿轮图标。本次环境为 Ubuntu、X11,图标文件存在且有效。最终通过在用户级.desktop文件中加入,重新启动并固定应用,成功解决。st是本次实际测得的窗口标识。其他版本或安装方式应先测量,不要直接套用。

To be a better man 201

启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz

本文记录我测试启元 Q1 时的第一阶段工作:安装桌面调试工具、搭建 ROS 2 Humble 容器、准备 SDK 消息环境,并在 RViz 中加载 Q1 模型、检查关节状态和 TF。本阶段已经看到模型并完成关节话题验证;Gazebo/MuJoCo 动力学仿真、机器人行走以及真机接口控制仍属于后续工作。

2302_79376097的博客 439

chromium 56 在 ubuntu 下交叉编译windows 版本chromium

ubuntu下使用win 编译工具链编译 win 版本chromium

一朵花开的时间 248

把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录

将 quye.com 从 Ubuntu 迁移至 FreeBSD,采用 Service Jail + host nginx 反代架构,解决单网卡环境下网络隔离难题。通过共享 IP(ip4=inherit)实现 jail 内 nginx 仅监听回环,由 host nginx 处理外部请求与 HTTPS。针对阿里云内网镜像源不可达问题,锁定 FreeBSD 15.0 版本并使用阿里云镜像。因 jail 出网失败,改用 Caddy 静态二进制替代 nginx。证书迁移时发现 DNS 未切换导致 HTTP-01 验证

skywalk8163的专栏 377

Ubuntu 自动登录后 GNOME 远程桌面连不上?一次登录钥匙环锁定的排查与永久修复

自动登录 + GNOME 远程桌面「连不上但解锁后能用」,几乎都是登录钥匙环被锁定导致的判断依据是 GRD 日志里的,以及设置页面顶部的「部分设置已锁定」修复思路是让钥匙环守护进程在启动时就带着密码解锁,最干净的做法是给加用户级 drop-in两个关键细节:密码文件不能带结尾换行;--unlock必须作用于「启动瞬间」的守护进程,而不是已运行的实例。

CJLU_WSJ的博客 489

openGauss 数据库多系统安装部署教程(CentOS / Ubuntu / Windows / Docker 四平台)

openGauss 安装的核心 =选型(社区版快速上手 / 企业版生产)+ 环境准备(关防火墙、调参数、建 omm 用户)+ 安装(sh 包gs_install或 Docker)+ 配置(XML 集群描述 +gaussdb参数)+ 验证(gsql连接)。用omm用户不是postgres、用gs_omgs_install工具不是systemctl裸管、生产装集群要写——理清这三点,安装就不会乱。

严同学在努力 174

Ubuntu 全版本 CVE-2026-98432 内核安全升级操作手册

本文为Ubuntu 16.04至26.10各版本CVE-2026-98432内核漏洞的统一升级指南,重点针对22.04、24.04、26.04等支持Proposed修复的版本。指导用户通过启用proposed仓库,使用apt安装指定修复内核(如5.15.0-203.213、6.8.0-149.149),完成模拟安装、实际升级与重启验证。强调需区分运行内核(uname -r)与已安装包(dpkg -l),并建议生产环境优先使用正式更新,测试环境可采用Proposed通道。附带系统检查、备份及回滚准备步骤,确保

云间小憩 388

Arduino 单片机仿真/开发工具全套整理(Ubuntu桌面 + 手机网页仿真)

本文系统整理了Ubuntu下Arduino仿真与开发工具链,涵盖桌面端(PICSimLab、SimulIDE、Kablix、嘉立创EDA等)及手机浏览器端(Wokwi、Velxio等)主流平台,明确apt源限制与安装方案差异,提供VS Code集成、Kablix与嘉立创EDA安装教程,并修正失效域名问题,助力开发者高效构建跨平台嵌入式开发环境。

zhangrelay的专栏 234
上一篇: 202210101.用read和write拷贝一张图片
下一篇: 20221123 ARM 汇编求最大公约数
风铃响了
博客等级 码龄4年 76粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值