- 博客(608)
- 资源 (31)
- 收藏
- 关注
原创 Ubuntu ntp搭建(客户端及服务器)
NTP=ntp.aliyun.com ntp.tencent.com # 主服务器(空格分隔)sudo systemd-timesyncd --force-refresh 强制立即同步。dpkg -l | grep systemd-timesyncd # 确认包已安装。systemctl status systemd-timesyncd 查看服务状态。System clock synchronized: yes(同步状态)journalctl -u systemd-timesyncd 查看实时日志。
2025-07-28 10:13:11
776
原创 snmp包分析
0 | GetRequest | 同 SNMPv1。| Trap 类型(十进制) | 名称 | 说明 || 类型标识符(十六进制) | 类型名称 | 说明 |
2025-07-26 13:58:07
508
原创 net-snmp添加自定义mib树
有其他文件我们可以通过snmpd -c /etc/snmp/snmpd.conf -f -Le -d 命令调试启动过程中遇到的问题。把我们前面mib2c生成的.c .h文件拷贝到源码目录agent/mibgroup下面。完成之后 会在 snmpd 会拷贝到 /usr/local/sbin/snmpd。然后就可以通过 如下命令启动snmpd snmpd.conf在当前目录下。首先我们把前面mib2c生成的文件修改 下面重新做了个简单点的MIB树。修改完之后 我们就可以把这些代码集成到net-snmp。
2025-07-26 11:36:05
415
原创 mib2c --生成表数据对应c文件
许多 MIB 表用于映射外部系统(如内核、设备、进程等)的状态,此时 MIB 实现模块充当底层系统与 SNMP 协议之间的接口。这里主要说允许开发者根据自身经验和偏好选择最适合的代码编写风格,MIB 表请求处理的核心任务。使用标准辅助函数(如 netsnmp_table_helper)根据请求筛选目标行。实现方式:将请求直接传递给表特定的代码处理逻辑,由该代码同时完成行识别和列操作。代码结构:通过大型 switch-case 语句覆盖每列的逻辑。原理:单个函数处理所有列的 GET/SET 请求。
2025-07-25 16:08:29
562
原创 mib2c --生成标量数据对应c文件
在ubuntu终端输入上面的指令前 确保 MIB文件已经拷贝到了对应的目录 另外确保mib2c工具已经安装了 前面Ubuntu安装snmp的两种方式 通过apt安装的时候会已经安装了mib2c工具。这里检查到我们的MIb树中包含标量和表格对象,这里自动生成的net-snmp分格的处理器不能同生成两种分格代码 需要分开生成 然后在合并 ,我们先生成标量类型的选择1。询问是否需要为notifications生成代码 这里我们选择n 如果选择y的话会覆盖前面的标量代码。生成代码:自动创建变量与标量的绑定,例如。
2025-07-25 15:35:42
163
原创 Ubuntu安装snmp的两种方式
-V systemonly 限制只能访问 systemonly 视图定义的 OID 注意这里如果上面的视图设置是view all included .1 允许访问所有 则这里的systemonly也要改成all,即:rocommunity public default -V all。#指定 SNMP agent 监听的地址,包括 IPv4 的 localhost 和 IPv6 的 localhost。#定义名为 systemonly 的视图,只包含系统基本 OID 范围。
2025-07-25 15:03:11
219
原创 使用MibBuilder创建Mib文件
然后设置相关的值 假设我们自定义一个LED状态的类型有on off两个值 默认是int值 我们可以点击...进去 针对int值我们可以有3种方式 一个就是简单的 第二种类似于一个枚举 第三种就是一个范围。创建好module后 我们可以根据不同的场景场景不同的节点 Object idetify代表的是中间节点 例如这里我们创建两个中间节点。左侧的是MIB树 最上面第一个是我们创建树节点的地方 第三个我们可以定义一些自定义的类型。然后我们可以再下面创建其他的节点 例如标量节点 这里我们创建了两个标量节点。
2025-07-25 14:59:54
878
原创 snmp简介
SNMP(简单网络管理协议)与 TR-069(CPE 广域网管理协议)均为网络管理协议,但设计目标、应用场景、功能细节若需管理通用网络设备(如企业交换机、路由器),或需要跨设备兼容性,选择 SNMP;若需管理家庭/企业宽带接入设备(CPE)(如家庭网关、IPTV 机顶盒),或需要广域网分布设备的远程管理(如自动配置、零接触部署),选择 TR-069。
2025-07-25 09:36:03
693
原创 FreeSWITCH 源码核心文件详解
以下是对 `core` 目录中一些主要文件的详细说明: #### 1. `switch_apr.c` - **作用**:提供与 APR(Apache Portable Runtime)库的接口,用于跨平台的文件操作、内存管理、线程管理等。- 管理会话的状态转换。- **主要功能**: - 定义和管理状态机的状态和事件。#### 16. `switch_rtp.c` - **作用**:管理 RTP(Real-time Transport Protocol)流的处理。- **主要功能**: - 创建和销毁流。
2024-11-27 14:47:05
620
原创 Sofia-SIP 常用函数参数解析
`To` 头字段通常包含接收方的 SIP URI,但不一定包含完整的 IP 地址和端口号。- 例如:`SIPTAG_TO_STR("sip:user@example.com")`。- 例如:`NUTAG_URL("sip:example.com")`。函数用于发起一个 REGISTER 请求,通常用于注册 SIP 客户端。函数用于发起一个 INVITE 请求,通常用于建立 SIP 会话。函数用于发送一个响应消息,通常用于响应收到的 SIP 请求。- 用于设置 SIP 消息的 `To` 头字段。
2024-11-27 10:16:15
807
原创 Sofia-SIP 使用教程
Sofia-SIP 是一个开源的 SIP 协议栈,广泛用于 VoIP 和即时通讯应用。以下是一些基本的使用教程,帮助你快速上手 Sofia-SIP。
2024-11-27 09:06:25
1016
原创 Ubuntu 22.04 ftp搭建
将/etc/vsftpd.conf配置文件的pam_service_name=vsftpd改为pam_service_name=ftp,即可解决。在上面步骤5配置的目录/etc/vsftpd.chroot_list下面新建不同用户 ,注意文件名要跟ftp用户名一样。chroot_list_file=/etc/vsftpd.chroot_list(可在文件中设置多个账号)2、FTP安装完成后,会默认为我们创建用户名为ftp的用户,默认无密码。pam_service_name=ftp 修改完成,重启ftp。
2024-11-13 15:09:03
835
原创 ubuntu samba
3、如果windwos提示还是无法访问 重启windows试试。4、另外注意下面两条命令在ubuntu桌面运行。1、ufw 打开端口 这些都打开了。据说path最好不用 root。
2024-10-15 15:54:07
466
原创 ALSA ubuntu 编译
3、先编译核心库 ,编译之前先看看目录下面的INSTALL文件,使用下面的命令配置。1、下载tar包:alsa-lib、alsa-utils。然后install,注意如果不是root需要加sudo。然后 如果是arm平台。
2024-09-19 11:02:03
537
原创 FreeSWITCH event_socket 配置从其他地址连接
然后apply-inbound-acl,设置他使用的ACL规则, 默认值为 loopback.auto ,会拒绝外部客户端的连入。这样配置后就可以在192.168.18网段通过event_socket连接freeswitch了。这里如果是domains 就需要调整acl.conf.xml。1、修改event_socket.conf.xml。主要是listen-ip 改为0.0.0.0。下面一行添加对应的网段。
2024-09-18 09:39:43
706
原创 qq邮箱开启smtp
2、找到smtp设置 开启 这里需要设置授权码 但是设置授权码之前最好先设置独立密码 因为如果没有设置独立密码 也是不能发送邮件的 设置了独立密码后 以前的授权码也失效了。获取授权码的时候需要手机发送一个短信。
2024-09-10 10:56:41
581
原创 阿里云 部署免费证书
可以选择个人证书免费版等 购买之后点击 创建证书。然后就是等待证书审核 审核成功之后会收到短信提醒。选择对应的资源进行部署。选择默认 点击下一步。
2024-08-03 10:48:12
387
1
原创 BlocProvider add数据流程
这里主要是调用了_stateController的add方法,_stateController的listen是在BlocBuilder中listen的。handleEvent中调用前面_Emitter的add方法,然后调用handler处理event,handler就是我们bloc中的处理方法。在onEmit首先判断state跟上次发送的是不是一样的,通过重新state的operator ==我们可以改变他的判断条件。这里的处理方法里面调用了emit函数,具体就是_Emitter的call方法。
2023-01-03 15:39:32
929
原创 Bloc创建流程
这里会得到一个_MapStream,它的conver就是我们前面传的匿名函数,然后调用stream的listen方法。然后吧这个subscription添加到_subscriptions。这里创建了一个_eventController,Bloc又继承了BlocBase。这里的_eventTransformer对应Bloc.transformer,Bloc的大概结构我们了解了,我们看看TestBloc里面的on方法。这里创建了一个_stateController,我们看看前面TestBloc的创建流程。
2022-12-14 18:22:53
363
原创 BlocBuilder初始化流程
我们先看看_BlocBuilderBaseState的initState方法,这里如果当前bloc为空,则调用context的read方法,我们构建BlocBuilder时并没有传bloc 所以这里是空,这里就到了ReadContext的read方法。这里的_delegateState是_CreateInheritedProviderState,我们看看其获取value的方法。调用它的create方法就是我们在BlocProvider传的create方法。我们调用到provider的of方法。
2022-12-12 14:50:34
639
原创 BlocProvider初始化流程
继承了InheritedElement, InheritedElement继承到ProxyElement,ProxyElement又继承了ComponentElement,ComponentElement继承了Element,具体的暂时不看了后面有空再了解下Element Widget相关的关系。value为null 所以这里走的是false,创建了一个InheritedProvider,并把我们前面的create Bloc传了进去。这里创建了一个_InheritedProviderScope。
2022-12-12 13:29:31
548
原创 css 实现图片宽度自适屏幕,高度与宽度成固定比例
<style> * { padding: 0; margin: 0; } .zoomImage { background: url("head_bg.png") no-repeat; width: 100%; ...
2019-04-18 14:27:32
4336
原创 有关css伪元素before after
<html><head> <style type="text/css"> div:before { content: url(open_live.png); background-color: #ff0000; width: 100px; ...
2019-04-12 15:56:28
379
原创 table-cell布局
参考:https://blog.youkuaiyun.com/messagebox_/article/details/82380913html:<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>dddd</title> <li...
2019-04-09 10:36:28
635
原创 css 高度自适应铺满全屏
html:<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>dddd</title> <link rel="stylesheet" type="text/css" href="test.css" /><...
2019-04-03 16:03:29
15175
转载 Android String8.h
1、源码位置/frameworks/native/include/utils/String8.h/* * Copyright (C) 2005 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use t...
2019-03-11 13:59:02
3478
原创 集成Firebase
链接:https://firebase.google.com/docs/crashlytics/get-started?hl=zh-cn注册一个账号,登录https://console.firebase.google.com控制台,新建一个app输入名字点击创建这里我们集成android端的输入包名,另外两个可以不用填把这个配置文件拷贝到app目录下面然...
2018-11-28 11:36:25
2782
原创 Rxjava collect
Observable.just(1, 2, 3, 4) .collect(() -> new ArrayList<Integer>(), new BiConsumer<ArrayList<Integer>, Integer>() { @Override ...
2018-11-22 15:12:16
1526
原创 RxJava CombineLatest
直接上demo Observable observable1 = Observable.interval(1, TimeUnit.SECONDS); Observable observable2 = Observable.interval(2, TimeUnit.SECONDS); Observable observable3 = Observa...
2018-11-21 16:24:57
643
原创 Rxjava map和flatMap区别
map和flatMap都是依赖传入的Function对数据进行变换但是1、返回值上面:map变换后可以返回任意值,而flatMap则只能返回ObservableSource类型2、变换后的输出:map只能进行一对一的变换,而flatMap则可以进行一对一,一对多,多对多的变换,具体的变换规则根据我们设置的变换函数mapper来定demoList<String&g...
2018-11-21 14:14:09
12461
原创 Rxjava总结
1、创建类操作符返回一个具体的Observable,如just返回ObservableFromArray 它里面重写了subscribeActual2、Observable调用subscribe的时候会根据重写的回调方法Consumer,构建一个新的Observer(LambdaObserver),如果对应的方法没有,则使用默认的Consumer,如没有onError,则使用Functions....
2018-11-21 10:57:27
419
原创 设置固定高度的RecycleView出现item未填充满一行
item布局是这样 <android.support.constraint.ConstraintLayout android:id="@+id/root" android:layout_width="match_parent" android:layout_height="wrap_content" android:pad...
2018-11-08 11:33:48
609
原创 kotlin有关map和flatMap
val list= listOf(1,2,3,4,5) val list2=list.map { listOf(it+1) } list2.map { println("my value is ${it}") } println(list2) println("----------------------------") val list3 = li...
2018-10-09 16:05:24
8255
原创 支付宝网页支付提示4000
如果安装了app没问题,但如果没有app调用的时候提示4000错误,这个可能是权限问题,把下面权限都加上试试 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTER...
2018-07-04 16:05:39
2183
原创 Activity不显示出来,发现是theme设置的有问题
<activity android:name=".ui.game.TouZhuActivity" android:exported="true" android:theme="@android:style/Theme.NoDisplay"/>
2017-08-17 18:03:09
1089
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人