编程
文章平均质量分 73
黑夜中的猫头鹰
软件 TCP\IP LTE NAS RRC RRM L2 C Python
展开
-
pyqt几点总结
一、窗口运行在主线程,需要采用QTread处理复杂的逻辑,否则导致主窗口卡顿二、强度的绘图库:pyqtgraph下载pyqtgraph,会自动下载依赖库numpy、 PySidepip install --user pyqtgraph -i https://pypi.tuna.tsinghua.edu.cn/simplePyQtGraph自带一个丰富的示例模块: python -m pyqtgraph.examples 示例源码:C:\Users\Jushri_User\AppD...原创 2020-11-27 11:11:44 · 284 阅读 · 0 评论 -
pyinstaller安装
方法一、直接采用pip install pyinstaller,但编译时提示bootloader错误方法二、重新下载pyinstaller源码编译安装,参考: https://blog.csdn.net/m0_43432638/article/details/108581288还是不行,说是需要采用win32的,所以:方法三、python ./waf all --target-arch=32bit 再 python setup.py install编译成功,但是发现新问题:由于不想携带命令行原创 2020-11-27 11:06:35 · 816 阅读 · 1 评论 -
pyqtSignal携带参数的两种方法
一、直接再pyqtSignal中指定需要携带参数的类型即可,如str、int,或者万能类型:object二、在connet采用lambda:net方法: _xxx_signal.connect(lambda:xxx.xxx_show(recv_t.data))原创 2020-11-24 11:04:48 · 1676 阅读 · 0 评论 -
PyQt5 PyQt5-tools 安装
分别安装PyQt5 PyQt5-tools,网上介绍的均是通过pip直接安装,但是直接安装,由于链接的境外网站,网速较慢,安装失败可以采用清华大学镜像网站下载:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5_tools同样失败,原因是由于pip默认原的网络链接较差,临时使用本镜像站来升级pip,详见:https...原创 2020-03-20 15:21:19 · 14472 阅读 · 0 评论 -
日志文件大小限定
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h> //getpid#include "time.h"#include "stdarg.h"#include "syslog.h"#define LOG_FILE_NAME原创 2018-04-24 15:36:03 · 2959 阅读 · 0 评论 -
linux网络用户态与内核态接口:ioctl、netlink
如下代码应用ioctl实现读取eth2接口的ip、mac地址:netlink同样可以,即netlink socket即可,详情见百度:原创 2018-05-07 14:12:50 · 1624 阅读 · 0 评论 -
insmod 与 modprobe 的差异
insmod 与 modprobe均进行内核的模块的加载,modprobe可以自动搜索、加载链接原创 2018-05-07 14:15:22 · 446 阅读 · 0 评论 -
ARP协议DPI深度解析
DPI对ARP报文进行解析(也可以借鉴open dpi?),整理ARP报文结构如下:结构ether_header定义了以太网帧首部;结构arphdr定义了其后的5个字段,其信息用于在任何类型的介质上传送ARP请求和回答;ether_arp结构除了包含arphdr结构外,还包含源主机和目的主机的地址。定义以太网首部:typedef struct ehhdr{ unsig...原创 2018-05-07 15:08:28 · 1232 阅读 · 1 评论 -
Makefile简介
总流程:可执行文件生成过程: .c --> .o --> .exe当有多个.c时,需要进行打包处理,则: .c(多个) --> .o (多个)--> .a --> .exe详细步骤:1. 读入所有的Makefile。2. 读入被include的其它Makefile。3. 初始化文件中的变量。4. 推导隐晦规则,并分析所有规则。5. 为所有...原创 2018-09-03 16:12:41 · 312 阅读 · 0 评论 -
netlink
一、 用户空间与内核通信的几种方法:* system call* procfs(/proc文件系统)* sysctl(/proc/sys目录)* sysfs(/sys文件系统)* ioctl 系统调用* netlink套接字(RFC 3549) net/netlink目录- af_netlink.c- af_netlink.h- genetlink.c...原创 2019-05-09 09:14:04 · 2607 阅读 · 0 评论 -
C语言编程规范----高端版
度娘的C语言编程规范很多,大多相同,近几年的工作经验,在已有基础上增加如下规范,可以使得C语言代码更加简洁、易读、高效:编程规范:1、函数入口进行参数校验,小概率事件优先检查以不影响主流程处理,防止出现多层嵌套2、变量申请统一放在函数开头3、超过5个以上条件判断,采用表驱动实现3、函数主要功能部分占函数的80%,日志、命令行记录最多占20%模块设计:1、模块设计满足高内...原创 2019-05-06 17:42:24 · 412 阅读 · 0 评论 -
linux raw socket
问题背景:公司原来为了搜索局域网内的网络视频解码器开发了一个Decoder Finder,用的是UDP广播的方式。现在韩国的客户发现当IP地址和PC不在同一网段时,无法搜索到decoder,人家还找了一个他们的软件,暴强,就算是IP地址全是0,照搜不误。问题分析:PC端,其实也就是用winpcap,直接和网卡通信,把消息包发出来,并且在接受响应。这样数据包不经过IP和UDP协议栈,IP地址...转载 2019-09-11 16:53:08 · 845 阅读 · 0 评论 -
linux 防火墙-iptables-netfilter
iptables : 对ip层报文进行改写ebtables: 对二层报文进行改写详解(1):入门简介1、iptables(包括netfilter)组成Linux平台下的包过滤防火墙,且是免费的,可以代替昂贵的商业防火墙解决方案,完成包过滤、封包重定向、NAT等功能2、iptables主要对 5链(PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING)、 ...原创 2018-04-11 11:01:01 · 390 阅读 · 0 评论 -
Coding沙龙之vbs脚本
参考文档:SecureCRT使用进阶篇(百度文库): http://wenku.baidu.com/link?url=OuzTSXkc3duddEypSz20iqKjEZFoWiHZMRc0R-hHuabcozvVBJS0EgmaOw7KGe2dp0L7P_X8jbbI4i3xQPeL-VdsLjtGLA573phYCXjzwFK背景:现在我们mesh验证,包括子系统验证、mesh原创 2017-02-13 16:30:14 · 448 阅读 · 0 评论 -
Coding沙龙之uthash
uthash是简单、易用、成熟、开源、强大的hash,采用宏封装,无需进行初始化操作,直接引用详情可百度uthash,参见各位高手分享原创 2017-02-10 10:25:48 · 353 阅读 · 0 评论 -
Coding沙龙之运算符优先级
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .成员选择(对象)对象.成员名原创 2017-06-20 09:23:40 · 200 阅读 · 0 评论 -
Coding沙龙之英文单词缩写
Word(s)AbbreviationDescriptionAbbreviateAbbreviationABRV AcademicACAD AcceptAcceptanceAcceptedACPT AccessACCS AccidentACDNT Accomplish原创 2017-06-20 08:54:01 · 2373 阅读 · 0 评论 -
Coding沙龙之0与‘0’与‘\0’与"0"与"\0"以及ASCII码
我们通过如下程序运行结果进行解释:void main(){ char a = '\0'; printf("%d", a); //显示为0 字符串a在内存中保存的二进制内容为:0000 0000, 如果按照整型打印,则将字符'\0'强转为整形0,所以显示0 printf("%c", a); //显示为空 字符串‘\0’即是空字符,详细解释可查询ASCII码表原创 2017-06-29 14:30:18 · 1125 阅读 · 0 评论 -
Coding沙龙之模块分层
前沿:在IP领域,IP网络协议架构由最初的IOS 7层演进为TCP\IP 5层;在无线通讯领域,网络架构由最初的UMTS 4层演进为LTE\SAE 3层;每一次分层的目的均是为了将一套复杂的系统简单化,而我们在编写一个模块代码时,也需要考虑分层,使得模块功能内部更加清晰,更易于掌握、维护。todu:原创 2017-03-14 18:05:27 · 237 阅读 · 0 评论 -
Coding沙龙之协议状态机实现
一个协议,常常伴随几个,甚至十几个状态机,如何有效实现这些协议状态机是完成协议开发的基础;且协议状态机往往比较复杂,是协议的核心部分,初期实现不好,后期维护成本非常高,且容易修改引入,所以如何实现一个高效的状态机尤为重要。原创 2017-03-14 18:03:45 · 528 阅读 · 0 评论 -
C++源文件后缀名
VC里用cpp作后缀名, 在GCC里默认采用C、cc、cxx作为后缀名.cpp, .h (VS file).cc, .h (GCC file) C中:头文件后缀名: .h源文件后缀名: .c C++中:头文件后缀名: .h, .hpp, .hxx 源文件后缀名:.cpp, .cc, .cxx,原创 2017-09-20 17:26:18 · 4410 阅读 · 0 评论 -
NAS介绍
术语: IMSI: 国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。总长度不超过 15 位,使用0~9的数字。由MCC+MNC+MSIN构成,其中: MCC:国家代号,占3位数字,中国的MCC规定为460。 ...原创 2017-09-27 13:54:54 · 8373 阅读 · 0 评论 -
大端&小端&网络序&主机序&比特序&位域
Little endian: 将低序字节存储在起始地址 Big endian: 将高序字节存储在起始地址 例子:在内存中双字0x01020304(DWORD)的存储方式 内存地址(注:内存地址从左到右为由低到高) 4000 4001 4002 4003 LE 04 03 02 01 --- 符合人的思维,低值存放于低地址,高值存放于高原创 2017-10-24 10:27:24 · 523 阅读 · 0 评论 -
Codeing沙龙之socket
socket在协议栈中的位置:tcp socket流程:udp socket流程:面向链接的udp socket(比上面的效率更高):基于传输层差异,4种类型的Socket:一、tcp socket:提供给应用层可靠的流式数据服务 应用程序协议:BGP,HTTP,FTP,TELNET等 优点:基于数据传输的可靠性。二、udp sock...原创 2017-02-07 10:20:00 · 289 阅读 · 0 评论 -
IP分片
IP分片浅析在TCP/IP分层中,数据链路层用MTU(Maximum Transmission Unit,最大传输单元)来限制所能传输的数据包大小,MTU是指一次传送的数据最大长度,不包括数据链路层数据帧的帧头,如以太网的MTU为1500字节,实际上数据帧的最大长度为1512字节,其中以太网数据帧的帧头为12字节。当发送的IP数据报的大小超过了MTU时,IP层就需要对数据进行分片,否则数据将无法发...原创 2017-11-03 10:57:21 · 607 阅读 · 0 评论 -
Coding沙龙之巧用typedef
typedef运用较多,网上已经有大量的使用举例,这里介绍几个特别的typedef使用,提高coding效率一、文件内函数根据子功能划分在一个.c文件中,一般存放的是同一类型的函数的集合,可以利用typedef进一步细分同一个文件中的函数首先在公共头文件如下定义:定义BW(也可以为具体模块名等)#define BW(description) 1使用示例:#ifdef B原创 2017-03-14 17:50:53 · 201 阅读 · 0 评论