GB28181协议TCP粘包 首先,如果是SIP协议服务端的话,不建议使用eXosip库,性能太差了。建议基于osipparser2实现SIP协议解析,自己实现TCP和UDP通信。对于TCP通信来说,一个完整SIP消息可能是分多次异步接收的,需要自己实现粘包。因为osipparser2解析SIP协议是必须输入一个完整的SIP消息。SIP协议的格式主要有两种表现形式:仅有SIP消息头(SDP消息长度为0),SIP消息头+SD...
GB 28181协议解读——报警事件通知 目录协议内容消息格式报警通知SDP消息体:报警响应SDP消息体:Notify消息字段含义Response消息字段含义协议内容报警事件通知和分发使用 IETF RFC 3428 中定义的方法 MESSAGE 传送报警信息。报警事件通知和分发流程中的请求命令采用 MANSCDP 协议格式定义,报警事件通知命令和响应如下:消息格式报警事件通知请求...
C++中int、long和double的取值范围和最大值,以及32位和64位的差异解读 前言一般对于C/C++下int等基本数字类型,主要关注三个维度,长度、取值范围和最大值的宏定义。下面分三个维度说明下。有三个影响因素:语言规则限制:比如int是变长,long是定长,double还有精度问题等等; 操作系统:某几个类型,Windows和Linux在32位和64位操作系统上的取值是不一致; 32位和64位系统在Windows下基本数据类型的大小都是一样的。只有指针的大...
计算机字符编码详解——从理论到实践——参考资料 gbk与gb2312的区别 最佳答案 GB2312是中国规定的汉字编码,也可以说是简体中文的字符集编码; GBK 是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名。其他回答 总体说来,GBK包括所有的汉字,包括简体和繁体。而gb2312则只包括简体汉字。gb2312,全称是GB2312-80《信息交换用汉字编码字符集 基本集》,1980年发布,是
MySQL必知必会——读书笔记 查询限制-- 查询表中前5行的结果SELECT * FROME 表名 LIMIT 5;-- 查询表中,从行3开始的4行数据SELECT * FROME 表名 LIMIT 3,4;-- 查询表中,从行3开始的4行数据SELECT * FROME 表名 LIMIT 3 OFFSET 4;排序-- 默认排序(A~Z)SELECT * FROM 表名 ORDER BY
【资料收集】客户端编程相关——Qt、MFC、Winform UI界面编程框架:Qt、MFC、Winform与后台通信机制:Libcurl、gsoapQT博主、网站或专题 主题和地址 QPixmap 【原】QPixmap显示图片简介 【原】QImage与QPixmap完全解析 【论坛】QPixmap和QImage的区别 QDockWidget 【转】(十七)QDockWidget详...
【系统运维】Windows系统删除大量文件 1、直接删除,不送入回收站:选择文件后按Shift+Delete键就可以直接删除文件而文件不进入回收站。在Windows7及以上系统中可以无需按快捷键进行删除。2、快速删除大量文件的命令:命令分别如下:rmdir [drive:]path [/S] [/Q]del [drive:]path [/S] [/Q]其中rmdir 与rd命令相似,推荐使用rmdir 命令,...
Linux 阻塞I/O、非阻塞I/O和I/O复用 一、阻塞I/O 二、非阻塞I/O 三、I/O多路复用 四、多路复用的三种方式(都是上面的I/O的多路复用,但是进行了改进) 参考资料:阻塞I/O、非阻塞I/O和I/O多路复用Linux IO模式及 select、poll、epoll详解使用异步 I/O 大大提高应用程序的性能select、poll、epoll之间的区别总结[整理...
UNIX网络编程套接字简介 参考书籍:《UNIX环境高级编程(Advanced Programming int the UNIX Environment Second Edition)》《TCP/IP详解 卷1:协议(TCP/IP Illustrated Volume 1 [Stevens 1994])》《TCP/IP详解 卷2:实现(TCP/IP Illustrated Volume 2 [Wright and...
ANSI、GBK、Unicode编码简介 ANSI编码表:DOS与ANSI分布图:各种编码依次产生简介:ANSII码:英文码+英文常用图形,一个字符占用一个字节。GB2312(1980年,中国大陆,最早国标码):即中文ANSII码,中文码占用了0x80~0xFF,收录汉字6763个,汉字图形682个。ASII有94个区,每个区94位,每个区位放一个字符。一个字节只能表示256个字符,不够用,因此要用两个字节,最...
C++ 深入理解 虚继承、多重继承和直接继承 最近阅读了《深入探索C++对象模型(Inside The C++ Object Model)》一书,其中对于sizeof这一块想写一篇博文记录下。但发现已经有一篇写得非常好的,因此直接转载了。转自:https://blog.csdn.net/u013630349/article/details/47057929【摘要】 本文从5段代码实例出发,通过类中类的普通继承,类的虚继承,...
C++设计模式——委托模式 参考资料:http://www.runoob.com/w3cnote/delegate-mode.html 委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承,它还使我...
Visual Studio 远程调试 Visual Studio 远程调试调试端先将编译好的成果物和PDB文件拷贝到目标端;找到并打开远程工具; 远程工具的Win32版本提示; 注意:远程调试工具分为32位和64位两个版本,目标端和调试端的工具版本要保持一致。调试端的远程工具显示样式; 调试端的远程工具显示样式; 调试端配置远程调试信息; 在调试端点击F5就可以进行调试了!...
标准C库封装的样例 CraneImage.h文件:///////////////////////////////////////////////////////////////////////////////// @file: CraneImage.h// @note: HangZhou Hikvision System Technology Co.,Ltd All Right Reserved// @b
Excel2013 表格常用技巧 Excel怎样给单元格添加下拉列表按住CTRL,依次选中多个单元格;在“数据”中点击“数据验证”;在弹出框中,做如下操作: 在“允许”中,选择“序列”;“忽略控制”和“提供下拉箭头”前的复选框打钩;鼠标点击“来源”下的输入框,开始编辑;按住SHIFT,依次点击每个单元格,在“来源”下的输入框将生成公式;点击确定键,第一个单元格已经支持下拉列表了。如下图: Excel粘贴文本到多个
C++学习资料 A+人才五大核心特质: 善良: 来自于人性之美,真诚,有良知,发自内心地创造美好、见证美好。 强大的自驱力: 来自于自我达成基础上的成功精神,寻死觅活、不管死活要把事情做得更好。 自我燃烧: 燃烧自己,照亮他人、给于温暖的真诚愿望。激励他人共同进步、共同成长。 打赢过若干胜仗: 一个接一
计算机字符编码详解——从理论到实践 前言 最近在看《深入理解计算机系统》,读到“字符编码”时不禁想起了初学时那段痛苦的岁月,同时又没找到一篇将理论和实践结合在一起的文章,为此决定自己写一份。希望能把我走过的弯路总结出来,能帮助一些还在路上的朋友。 关于计算机如何存储信息,请参考《深入理解计算机系统》的第 02 章内容,此文只讲解与字符编码有关的内容。 另外,关于常用编辑器对于字符编码的区别,请参考我的另一篇文档——《Win记事本
编辑器(Win记事本、Sublime、Notepad++)对常见字符编码的处理和区别:GB2312、GBK、ANSI、Unicode、UTF-8 字符编码UTF-8的一个特别的好处是它与ISO-8859-1完全兼容,可以表示世界上所有的字符,汉字通常用3个字节来表示。 GB2312的code page是CP20936。GBK的code page是CP936。GB18030支持的字符数更多。GB2312、GBK、GB18030均为双字节。 注意:windows notepad、windows notepad++和sublime t
图解TCP/IP——第1章 网络基础知识 从独立模式到网络互连模式 【图】以独立模式使用计算机 【图】以网络互联方式使用计算机 【图】LAN(Local Area Network,局域网)和 WAN(Wide Area Network,广域网)计算机与网络发展的7个阶段批处理 【图】批处理 【图】分时系统 【图】计算机之间的通信 【图】计算机网络(20世纪80年代) 【图】窗口系统的产生于计算机网络 【图】互联网的普及
深入理解计算机系统——第01章——计算机系统漫游 博客源自:http://blog.csdn.net/xuejianhui/article/details/525779371.1 信息就是位+上下文 初读此书时,此标题对我触动非常大,如醍醐灌顶!作者一针见血地道出了信息的本质。无论是磁盘中的文本文件、TCP报文协议、基于TCP封装的HTTP报文协议等等,都是基于上下文。开头告诉你怎么解析、后面有多长的内容。GB2312、GBK、UTF-8等字符编
中文字符编码:GB2312、GBK、ANSI、Unicode、UTF-8 字符编码windows notepad、windows notepad++和sublime text的字符编码显示区别: windows notepad notepad++ sublime text ANSI ANSI GB2312 Unicode UCS-2 LE BOM UTF-16LE Unicode big endian UCS-2 BE BOM
xml嵌套xml时的转移字符 使用场景项目中,数据库升级工具,使用xml格式保存数据库升级脚本,格式如下:<?xml version="1.0" encoding="iso-8859-1" ?><upgrade version="1.1"> <sqls> <DML> UPDATE sysconfig SET strValue=''
按照条件在两个表之间拷贝数据 for mysql & sqlserver 业务讲解alarmeventlog(简称ael)表示一条报警信息; alarmclientlog(简称acl)表示操作员对报警的处理记录,同一报警可能有多条处理记录。ael与acl是一对多的关系,通过各自的strIndex和strUniqueTime关联。 acl.HandleTime表示每个操作员的处理时间。现需要将acl中对应最新的一条记录拷贝到ael中去。代码实现因要支持两种数据库,且数据
Python操作protobuf示例 addressbook.proto文件内容package tutorial;message Person{ required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType { MOBILE = 0; HOME =
ERROR (ProgrammingError) (2014, "Commands out of sync; you can't run this command now") 错误场景:使用Python开发的数据库升级工具,在升级脚本行遇到如下语句报错了:DROP TRIGGER IF EXISTS acl_2_ael_insert;CREATE TRIGGER acl_2_ael_insert AFTER INSERT ON alarmclientlogFOR EACH ROW UPDATE alarmeventlog SET alarm_deal_type =
mysql-5.7.12-winx64安装教程 下载首选,去下面地址下载64位版MySQL数据库: https://dev.mysql.com/downloads/mysql/ 如果想快速部署,可以下载32位版MySQL,去小面地址下载,直接一键安装: https://dev.mysql.com/downloads/installer/安装①为了防止MySQL服务已经被安装,先强制删除;sc delete MySQLSvrName②
客户端和服务端在同一台机器上,wireshark如何实现抓包 在实际项目中,可能会遇到客户端和服务端在同一台机器,要抓包对两边的通信等进行分析,默认wireshark是不能抓到客户端和服务端在同一台机器的数据包的。 注:10.16.38.103是本地IP,10.16.38.254是网关ip开启命令:route add 10.16.38.103 mask 255.255.255.255 10.16.38.254关闭命令:route delete 10.16
MySQL利用临时表存储和操作数据 -- 查找无台席号并且未配置CVR录像的资源ID,并存入临时表中DROP TEMPORARY TABLE IF EXISTS tmp_table;CREATE TEMPORARY TABLE tmp_table SELECT DISTINCT res.ID AS res_id FROM regionres res LEFT JOIN recordcvr cvr ON cvr.
C++中以bool作返回值的函数的常见错误 // test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"bool t_return_false(){ return false;}int t_omit_road(){ if (t_return_false()) { return true; } // 遗漏的分支:编译器不报错,只给出告警!
python优雅编程技巧 """python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素.集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或
netstat命令详解 参数详解在windows下,netstat的命令行表达式如下: NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval] 在windows的CMD窗口运行netstat /?命令,就可以显示netstat的帮助信息: 参数 作用 -a 显示所有连接和侦听端口。 -b
Python优雅编程技巧 Python开发的10个小技巧标签(空格分隔): Python1. 列表推导式需求:把list所有成员元素加倍。 普通的方式:bag = [1,2,3,4,5]for i in range(len(bag)): bag[i] = bag[i] * 2优雅的方式:bag = [1,2,3,4,5]bag = [elem * 2 for elem in bag]2. 遍历列表普通的方式:b
正则表达式必知必会 作者:Ben Forta——世界著名专家、Aodbe技术界知名专家,《SQL必知必会》、《MySQL必知必会》作者。1. 概述:正则表达式(regular expression,简称regex);用途:搜索、替换;由正则语言创建,嵌入到其他语言或软件产品中的“迷你”语言;语法较简单真正的挑战是解决实际的问题;默认只返回第一个匹配结果,但都有获取全部的机制。比如JavaScript里,可选的
博客导航 我的博客园地址,请轻戳~~~数据库: mysql show processlist分析 MySQL的触发器 sql server2008 事务日志满的解决办法 Out of memory (Needed 6707872 bytes) MySQL利用临时表存储和操作数据基础类: cppreference.com学习笔记——ASCII表 多核编程实战Multi
mysql show processlist分析 公司项目遇到一个问题:数据库内存溢出,其他同事已经怀疑数据库相关操作有问题。 数据库错误日志:Out of memory (Needed 6707872 bytes)命令如下: 数据库操作一般会封装成一个类,提供创建/断开连接、运行语句等方法。 比较业余的用法是:用的时候,把连接类实例化一个临时变量,创建一个新连接,用完不断开连接,直接销毁。反复这么做,MySQL就会创建一堆线程维护连接,每个
MySQL的触发器 Cmd Markdown地址在某个表发生更改(DELETE、INSERT、UPDATE)时自动处理某些事情。删除触发器-- 删除触发器DROP TRIGGER new_user;创建触发器创建触发器: 1、唯一的名; 2、关联的表; 3、响应活动(DELETE、INSERT、UPDATE); 4、何时执行(处理前/后)。注意:触发器只支持表,不支持触发器和临时表。IN
WindowsError的错误代码详解 0操作成功完成。 1功能错误。 2系统找不到指定的文件。 3系统找不到指定的路径。 4系统无法打开文件。 5拒绝访问。 6句柄无效。 7存储控制块被损坏。 8存储空间不足,无法处理此命令。 9存储控制块地址无效。 10环境错误。 11试图加载格式错误的程序。 12访问码无效。 13数据无效。 14存储器不足,无法完成此操作。 15系统找不到指定的驱动器。 16无法删除
Out of memory (Needed 6707872 bytes) 2015-09-29 19:52:08 6300 [Warning] Using unique option prefix myisam_recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
SYSTEMTIME、 time_t、tm 的相互转换 SYSTEMTIME转time_t://SYSTEMTIME转time_ttime_t SystemTime2Timet(const SYSTEMTIME& st){ struct tm gm = {st.wSecond, st.wMinute, st.wHour, st.wDay, st.wMonth-1, st.wYear-1900, st.wDayOfWeek, 0, 0};
【笔记&代码】 多核编程实战Multicore Application Programming For Windows 英文版下载地址1、创建线程CreateThread的缺陷: 调用CreateThread()让系统生成一个新线程,但并不设置线程使用开发者环境提供的库进行工作。 Windows只生成线程并返回句柄,但没机会建立起需要的线程本地数据结构。 库将在首次被调用时创建需要的结构,但并非所有的库能做到这一点。 因此,建议使用_beginthreadex()做替代。_beginthreadex
sql server2008 事务日志满的解决办法 sql server2008 事务日志满的解决办法收缩MDF和LDF文件:--收缩MDF:DBCC SHRINKFILE ('IVMS8100v3',1)--收缩LDF:USE [master]GOALTER DATABASE IVMS8100v3 SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE IVMS8100v3 SET RECOVE