WSL与主机的简单网络通信
WSL的网络配置 参考的官方文档:使用WSL访问网络应用程序 按下Win键搜索WSL Settings,可以发现其中的网络模式有: Nat: 默认的网络地址转换模式,WSL IP地址与Windows主机地址相互隔离 Mirrored: 镜像模式。开启后WSL和Windows共享网络配置,包括IP地址、系统代理(梯子) VirtioProxy: 我的目标是使用移动设备(手机)通过IP+端口访问WSL上开启的网络服务。但是在Mirrored模式下没有成功。 如何开启镜像模式(Mirrored):资源管理器中搜%UserProfile%,在该文件夹下创建.wslconfig,添加如下内容: 12[wsl2]networkingMode=mirrored 下面先考虑Windows与WSL在Mirrored模式下的通信。 镜像模式下Windows与WSL 进行http 通信 Windows作为服务端 在当前文件加下建立简单的网页: 1234567891011121314151617<!DOCTYPE html><html><head&g...
KMP字符串匹配算法
简介 我们想要在一个字符串S中找到一个子串P(称为模式串),如果找到就返回该匹配串在S中起始位置。此时可以使用KMP算法(字母为三个提出者的姓名首字母) 传统的回溯法可能是这样的:在逐位检查匹配字符串P和S的过程中,如果发现当前字符S[i]与P[i]不匹配,那么从P[i-1]开始向前找S[i],如果找到了P[j]==S[i],那么从P[j]和S[i]向前遍历两字符串观察对应字符是否相等;否则就从P[0]开始重新和S[i]匹配。 12345678910111213141516# 代码未完成n=S.lengthm=P.lengthfor i in range(n): for j in range(j): if S[i] != P[j]: k=j-1 while(): for k in range(j): if S[i] == P[j-k]: l=i-1 o=j-k-1 ...
AVCodecVideo项目学习
本篇记录鸿蒙用于音视频编解码的原生AVCodec Kit学习过程 AVCodec编解码模块官网:AVCodec Kit简介 示例代码仓:AVCodecVideo 编码过程分析 TS层:Index页面在用户点击录制->同意保存按钮后调用initNative获取SurfaceId,并带SurfaceId路由到Recorder页面 Init 123456789101112131415161718192021222324252627graph TD A["initNative"] --- B["RecorderNative::Init"] B --- C["napi_create_async_work"] C ---|napi_async_execute_callback| C1["NativeInit"] C ---|napi_async_complete_callback| C2["DealCallBack"] C1 --- D1["R...
live开发日志(二)
网络部分接入计划 WebRTC传输 难点:似乎需要按照gitcode.com/openharmony-sig/ohos_webrtc中的文档自行编译,编译难度高 库较为庞大,用不到那么多功能 利用现成服务 ZEGO 声网 自行构建协议栈 难点:需从头开始构建 参考项目 ohos_webrtc RTCDemo 第二个项目基于第一个项目 直播界面 Distributed-View-Show 直播界面 对该开源项目的直播界面进行分析 直播数据 实际LiveData非const 当看播端通过滑动页面请求观看直播,服务器以某种算法(随机或根据观看人数排序)从LiveData中返回一个LiveDataModel,看播端根据它来渲染画面:显示主播、观看人数、评论,解析码流。 1234567graph TD A[客户端滑动页面] --> B[发送看播请求] B --> C[服务器处理请求] C -->|选择算法:随机/根据热度| D[发送LiveDataModel] D --> F[客户端渲染画面] F --> G[...
HelloAVCodec项目学习
前置知识:解码流程 :star: 官方文档 解码器状态机 AVCodec编码流程 项目结构 相关源码仓:Hello-AVCodec 该源码仓文件结构和Cmakelist中的不符,编译会报错 目录结构(点击) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758├─main│ ├─cpp│ │ ├─bounds_checking_function│ │ │ ├─include│ │ │ └─src│ │ ├─common│ │ │ └─dfx│ │ ├─napi_wrapper│ │ │ └─Sample│ │ ├─sample_framework│ │ │ └─test│ │ │ └─unittest│ │ │ └─video_test│ │ │ └─video_test│ │ ...
鸿蒙5开发学习
ArkTS ArkTS HAP应用构建过程: 应用发布过程: NDK (7.15) Native C++工程目录 cpp/types:存放C++接口描述文件 cpp/napi_init:定义C++ API接口的文件 Node-API Node-API简介 Node-API(ArkTS和C++间)交互流程: 初始化阶段:当ArkTS侧在import一个Native模块时,ArkTS引擎会调用ModuleManager加载模块对应的so及其依赖。首次加载时会触发模块的注册,将模块定义的方法属性挂载到exports对象上并返回该对象。 调用阶段:当ArkTS侧通过上述import返回的对象调用方法时,ArkTS引擎会找到并调用对应的C/C++方法。 Web 华为云视频直播服务 cmakelist 12#声明一个产物libentry.so,SHARED表示产物为动态库,hello.cpp为产物的源代码add_library(entry SHARED hello.cpp) CMake 会根据目标平台的约定自动添加前缀和后缀。 Unix 系统,CMake 会自动在...
Javascript 学习记录
缘起 SRTP项目要实现基于HarmonyOS NEXT系统的直播应用,需要使用ArkTS,由于ArkTS基于TS,TS基于JS,我想从JS学起会更加顺利,而且JS的应用会更广泛,在对比中学习应该会更快而且更容易看清它们各自的特性。此部分独立于NLive(直播应用名称,个人暂定)的开发记录。 这里仅记录学习JS过程中的进度,参考的文献,以及遇到的问题和解决办法等可以容易说明且直观的内容。 具体JS知识的相关笔记在这里。 目标 理解JS语言特性且能应用,初步目标:理解博客内使用的相关JS,实现有角度滚动图片瀑布流。 学习网站 MDN Web Docs 进度 [ ] MDN Web Docs
live开发日志(一)
介绍 本项目实现基于HarmonyOS NEXT系统的直播应用,这里记录开发日志。 目标 [ ]实现主播开播,用户看播 [ ]一个简洁优雅的UI界面
SVD
Introduction SVD(singular value decomposition) is a mathematical method to process matrix. SVD can help extract the key traits of the number in a matrix. Apparently we can use it to process images because images are expressed as matries in computer science. This article is aimed to figure out why and how the SVD can extract the traits of the matrix. Plus I want to give several examples of its application in computere science. SVD Start from one way to factorize matrix Here is a matrix with ra...
Quadratic probing
散列表——平方探测——二次剩余 散列表的平方探测 我们先回顾一下散列表(Hash Table)的平方探测(Quadratic Probing): 平方探测 是一种用于解决哈希冲突的方法。哈希冲突发生在两个或多个不同的键通过哈希函数映射到同一个索引位置时。平方探测通过改变冲突位置的探测方式,来减少冲突并均匀分布键值。 计算公式为:探测位置=(初始哈希位置+i^2)%表长 再来看看《数据结构与算法分析——C语言描述(Mark Allen Weiss 第二版 机械工业出版社)》119页定理5.1的证明,这是一个有关平方探测的重要结论,这里的证明似乎不是很完整。 定理5.1:如果使用平方探测,且表的大小是素数,那么当表至少有一半是空的时候,总能够插入一个新的元素。 证明的倒数第二行 “因此任何元素都有 ⌊TableSize/2⌋\lfloor TableSize/2\rfloor⌊TableSize/2⌋ 个可能被放到的位置。” 这句话乍一看并不显然,因为定理先证明了前 ⌊TableSize/2⌋\lfloor TableSize/2\rfloor⌊TableSize/2⌋...









