自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 谈谈变量的命名

变量的命名可以是字母或者_或者$开始,但不能是数字。 变量的命名法有驼峰命名法和下划线命名法 下划线命名法是使用下划线连接各个词汇。词汇小写。 驼峰命名法Camel-Case,有两种: 小驼峰:除第一个词汇首字母小写,其他每个词汇首字母大写。 大驼峰:每个词汇的首字母都大写,常用于类名。...

2020-07-08 13:16:49 24 0

原创 根据程序的窗口句柄找到程序的路径

有时候对于流氓软件乱弹框,干扰别人的工作非常反感。通常流氓软件的安装路径和进程都显得比较隐蔽,这里给出如何查到其路径,清除掉它的办法。 查看弹出的窗口的句柄值,使用spy++工具。 根据窗口句柄找到程序路径: #include <stdio.h> #include <tch...

2020-07-08 12:48:28 17 0

转载 -L -Wl,-rpath-link -Wl,-rpath区别精讲

目录 前言 源码准备 源码内容 尝试编译,保证源码没有问题 编译 首先编译world.c 编译并链接hello.c 调试编译test.c 结论 前言 关于gcc这三个参数,参考了诸多文档后,仍然理解上有偏差,仿照下面博客中的方法,自己调试了一波,总算是理解了。...

2020-07-03 11:25:32 58 0

原创 Linux平台webrtc源码下载和编译

先安装depot_tools,这里略去。 1、mkdir webrtc && cd webrtc 2、fetch --nohooks webrtc 3、gclient sync 4、./build/install-build-deps.sh 5、gn gen out/De...

2020-07-01 11:19:41 32 0

原创 linux几种配置文件

1. /etc/profile 影响所有用户,登录时被执行一次 2. /etc/.bashrc 影响当前用户,打开shell时被读取 3. ~/.bash_profile 影响当前用户,登录时被执行一次 ubuntu和debian没有这个文件,centos有这个文件。 4. /etc...

2020-06-29 12:03:19 38 0

转载 解决git clone完成后提示error: RPC failed curl 56 GnuTLS recv error (-9)

错误提示 remote: Enumerating objects: 9817, done. error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received. fa...

2020-06-29 10:30:27 102 0

转载 高级轮询技术——/dev/poll接口与kqueue

写在转载之前的: 在nginx源码src/event/ngx_event.h中涉及了好几种网络模型: windows select windows IOCP select poll epoll devpoll kqueue eventport 废弃的: glibc aio rtsig 可以说...

2020-06-27 02:00:53 49 0

原创 webrtc中的AsyncResolver使用

连接远程服务时,如果没有直接提供ip,就需要使用gethostbyname或者getaddrinfo来解析出ip地址,这一过程需要dns访问,是阻塞的。在webrtc的例子peer_connection_client.cc代码中,给出了使用rtc::AsyncResolver获取ip地址的方法,值...

2020-06-27 01:28:18 40 0

转载 sigslot - WebRTC中的事件处理机制

写在转载之前的: webrtc的源码中用到了sigslot机制,可以看看webrtc/examples/peerconnection/client/中的peer_connection_client.cc和peer_connection_client.h代码里是怎么用的。sigslot.h原先位于...

2020-06-27 01:16:05 35 0

原创 linux中c++头文件在哪

位于/usr/include/c++/目录下,有几个子目录,代表不同的版本。

2020-06-26 23:07:48 22 0

转载 C++关键字之using的的用法总结

1)配合命名空间,对命名空间权限进行管理 using namespace std;//释放整个命名空间到当前作用域 using std::cout; //释放某个变量到当前作用域 2)类型重命名 作用等同typedef,但是逻辑上更直观。 #include <iost...

2020-06-26 22:53:28 32 0

转载 Windows IOCP模型与Linux EPOLL模块之比较

一:IOCP和Epoll之间的异同。 异: 1:IOCP是WINDOWS系统下使用。Epoll是Linux系统下使用。 2:IOCP是IO操作完毕之后,通过Get函数获得一个完成的事件通知。 Epoll是当你希望进行一个IO操作时,向Epoll查询是否可读或者可写,若处于可读或可写状态后,Epol...

2020-06-26 20:53:37 28 0

转载 How to install Janus Gateway in Ubuntu Server 18.04

On these days, i was hired as freelancer to configure a self hosted WebRTC server and between Jitsi, Janus and Kurento, i decided to move on withthe ...

2020-06-23 20:14:25 75 0

转载 How to use and build autotrace from source in Ubuntu 18.04

AutoTrace is a utility for converting bitmap into vector graphics. AutoTrace can be compiled standalone, then it can import pnm, pbm, pgm, ppm, bmp a...

2020-06-23 20:08:12 40 0

转载 How to prevent connections from closing after a while in PuTTY

How to prevent connections from closing after a while in PuTTY As someone that has to code on a project, then update the changes on the production...

2020-06-23 19:44:45 20 0

翻译 ‘struct lws_context_creation_info’ has no member named ‘ws_ping_pong_interval’

原文标题为:How to solve Janus Gateway Build error: ‘struct lws_context_creation_info’ has no member named ‘ws_ping_pong_interval’ 以下是原文给出的解决办法: We wrote...

2020-06-23 19:20:40 83 0

转载 Makefile中.PHONY的作用

单词phony (即phoney)的意思是:伪造的,假的。来自collins的解释是: If you describe something as phoney, you disapprove of it because it is false rather than genuine. 那...

2020-06-23 10:13:41 34 0

转载 git代理设置与取消

0x00 前言 国外的git代码下载速度很慢,怎么办? google的代码无法下载怎么办? 解决方法简单暴力,前提就是手里要有一个国外的代理,可以翻墙下载东西。 0x01 设置HTTP代理 设置全局代理模式,这里只设置了http,下载aosp项目足够用了,至于https代理没有研究 git c...

2020-06-20 11:46:26 53 0

原创 linux du命令

du用于统计目录下的文件大小,很有用。基本用法如下: 1.统计当前目录下的总的文件大小 du -sh 2.统计当前目录下所有子目录的文件大小 du -h 3.统计指定最大深度子目录下的文件大小 du -h -d 2 这里指定最大子目录深度为2,只统计当前目录时就指定0 ...

2020-06-20 11:42:11 27 0

转载 Go语言处理JSON之——利用Marshal生成json字符串(一)

利用Go语言内置的encodong/json标准库,我们可以轻松地生成和解析json格式的数据。 func Marshal(v interface{}) ([]byte, error) 1 从返回值我们可以看到,该函数有两个返回值,一个是传入参数v的json编码,类型为[]byte,另外一个就是e...

2020-06-19 18:40:48 31 0

原创 pcm转wav的方法

假如你有一段录制的pcm数据,想要播放却不行,需要给播放器指定其通道、采样率、采样位数这三个信息,播放器才能知道如何播放它。所以需要转换为wav格式,因为wav头里面包含了这些信息。 这里记录一下如何使用ffmpeg转换,以及如何使用ffplay播放的命令行。 ffmpeg -ar 16000...

2020-06-18 20:22:39 34 0

原创 通信汽车领域的一些名词术语的全称

我们经常会看到听到一些流行词汇,也许并不清楚其全名是什么。 GSM(Global system for mobile),2G UMTS(Universal mobile telecommunication system),3G LTE(Long term evolution),4G 5G ...

2020-06-13 18:19:05 450 0

转载 3GPP是个什么组织 为啥5G标准离不开它

3GPP一直以来在人们心中是一个神秘的组织,很多用户对于它的理解和认知,说不清,道不明。最近关于5G网络的诸多报道,都陈述了“5G网络”的标准是由“3GPP”来规定的,那么它到底是个怎样的组织?我也不卖关子了,一同揭晓它神秘的面纱。 “3GPP”组织建立的来龙去脉 上世纪80年代,电话...

2020-06-13 17:19:35 406 0

转载 golang打印变量类型

直接使用reflect的TypeOf方法就可以了 模块是:"reflect" fmt.Println(reflect.TypeOf(var))

2020-06-13 09:22:33 60 0

原创 gn的使用

gn args --list out/Default 列出所有可选的编译参数。 gn args out/Default --list 同上。 gn args out/Default[--args="..."] 设置构建参数,会弹出文本给你输入。 gn gen out...

2020-06-09 11:20:11 64 0

转载 Ubuntu18.04启用中文输入法

Ubuntu18.04发布了,但是搜狗输入法目前尚未支持。 而18.04自带的中文输入法选择sunpinyin为预设中文输入引擎,但是并没有将sunpinyin放入iso镜像中,详情参考18.04 从镜像开机无法输入中文的问题(已解决)。 将预设输入法改为intelligent pinyin就好...

2020-06-06 22:13:56 54 0

翻译 如何从“添加/删除程序”列表中手动删除程序

重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 256986Microsoft Windows 注册表说明 概要 ...

2020-06-02 16:13:27 111 0

转载 App启动优化

对于Android平台上的线程优先级进行设置可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程来说十分重要。Android在线程方面主要使用的是Java本身的Thread类,我们可以在Thre...

2020-06-02 15:16:25 53 0

转载 H.264之指数哥伦布编解码分析

以下是转载的原文,其中红色文字是本人对原文的理解补充。 ------------------------------------------------------------------------------------------------------------------------...

2020-05-29 01:13:36 101 0

转载 模式对话框与非模式对话框的区别

模式对话框就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口.例子:在桌面上右击我的电脑,选择属性,弹出系统属性窗口,点击下面的技术支持,弹出技术支持信息,现在再对系统属性窗口进行操作就操作不了,这种叫做模式对话框;关闭技术支持信息,在系统属性里选择硬件,点击设备管...

2020-05-28 14:39:21 65 0

原创 验证google webrtc服务器demo(apprtc)使用的turn/stun服务器

先说以下如何获得REST API编写的ICE Servers获取方法: curl -d "key=AIzaSyA2WoxRAjLTwrD7upuk9N2qdlcOch3D2wU" https://networktraversal.googleapis.com/v1alpha/...

2020-05-28 12:45:24 68 0

转载 REST与RESTFul API最佳实践

我经常会面试一些做PHP的开发者,让我很奇怪的是,10个人总有8个多不知道什么是REST服务,甚至是没有听说过。但RESTFul API已经是现在互联网里对外开放接口的主流模式,可参考: 豆瓣APIhttps://developers.douban.com/wiki/?title=api_v2 ...

2020-05-28 12:15:45 56 0

转载 编写REST API

REST API规范 编写REST API,实际上就是编写处理HTTP请求的async函数,不过,REST请求和普通的HTTP请求有几个特殊的地方: REST请求仍然是标准的HTTP请求,但是,除了GET请求外,POST、PUT等请求的body是JSON数据格式,请求的Content-Type...

2020-05-28 12:10:32 50 0

转载 Introduction to libjingle

libjingle is a collection of open-source C++ code and sample applications that enables you to build a peer-to-peer application. The code handles crea...

2020-05-28 00:07:32 64 0

转载 js中判断对象是否为空的三种实现方法

本篇文章主要是对js中判断对象是否为空的三种实现方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助。 在写js脚本的时候经常遇到对象为空或者不是对象的情况,出现这种情况我们可以用if去判断它,然后去执行相应的处理方法,具体判断他们的方法有以下几种: 1、if(typeOf(...

2020-05-27 21:43:03 95 0

原创 Node.js遇到的一个错误TypeError: Cannot convert object to primitive value

js文件运行时出现这个错误,发现是这一行引起的:console.log('req.body is:'+req.body) 将其改为:console.log('req.body is:',req.body)就好了。 这是因为req.body是对象,不是字符...

2020-05-27 19:55:36 187 0

原创 http post参数传递的两种方式

首先说一下http请求,包括三部分:请求行,请求头,请求体(http post有,http get没有)。 发送请求到http server的时候,这三部分里面都可以传递参数。通常我们不考虑请求头里传递参数,这也不标准。http get请求只能通过请求行来传递参数,即通过"?user=...

2020-05-27 19:02:15 91 0

转载 左值、左值引用、右值、右值引用

1、左值和右值的概念 左值是可以放在赋值号左边可以被赋值的值;左值必须要在内存中有实体; 右值当在赋值号右边取出值赋给其他变量的值;右值可以在内存也可以在CPU寄存器。 一个对象被用作右值时,使用的是它的内容(值),被当作左值时,使用的是它的地址。 2、引用 ...

2020-05-26 00:57:45 35 0

转载 详解CREATESTRUCT结构体

CREATESTRUCT结构定义了传递给应用程序的窗口过程的初始化参数,它定义了窗口外观相关特性,CREATESTRUCT结构具有如下形式: typedef struct tagCREATESTRUCT { LPVOID lpCreateParams; //指向将被用于创建窗口的数据的指针。...

2020-05-25 20:22:52 45 0

转载 win32程序通过LPCREATESTRUCT中的lpCreateParams传递参数给窗口过程函数

win32窗口程序中如果需要给窗口过程函数传递自定义参数,可以通过LPCREATESTRUCT结构体中的lpCreateParams进行传递。 创建窗口实例函数: m_hWnd = CreateWindowEx(WS_EX_APPWINDOW, "FxWinAPP",...

2020-05-25 20:11:16 44 0

提示
确定要删除当前文章?
取消 删除