灵动的指针


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索
Jacob.wang

Jacob.wang

58 日志
16 分类
36 标签
CSDN GitHub Coding

rtmp信令交互过程分析一-概述

发表于 2018-08-20 | 分类于 RTMP , 音视频 | 阅读次数:

使用wireshark抓包分析rtmp推流和拉流过程的信令,大致如下:

通用部分

箭头>>>表示C->S,箭头<<<表示S->C

  • >>> Handshake C0+C1
  • <<< Handshake S0+S1+S2
  • >>> Handshake C2
  • >>> AMF0 Command connect(‘live’)
  • <<< Window Acknowledgement Size 5000000
  • <<< Set Peer Bandwidth 5000000,Dynamic
  • <<< Set Chunk Size 4000
  • <<< AMF0 Command _result(‘NetConnection.Connect.Success’)
  • >>> Window Acknowledgement Size 5000000
阅读全文 »

MySQL下载与安装(Linux)

发表于 2018-07-25 | 分类于 MySQL | 阅读次数:

下载

打开如下网址:

https://dev.mysql.com/downloads/mysql/5.5.html#downloads

根据需要筛选版本。这里版本选5.5.60,操作系统选Linux-Generic,系统版本选32-bit。然后点击下载。或者可以直接使用下面的链接下载:

https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.60-linux-glibc2.12-i686.tar.gz
阅读全文 »

Hexo安装、部署到github和coding

发表于 2018-07-02 | 分类于 Web | 阅读次数:

hexo安装

apt-get install nodejs
apt-get install npm
npm install -g hexo-cli
阅读全文 »

svn server搭建/备份与恢复版本库

发表于 2018-07-02 | 分类于 Linux | 阅读次数:

1、安装

apt-get install subversion

2、创建版本库

//创建工程目录
mkdir  /home/svn_project
cd /home/svn_project
//创建版本库目录
mkdir code1
//创建版本库
svnadmin create ./code1
//更改目录权限
chmod 777 -R /home/svn_project/
阅读全文 »

openssl生成https证书文件

发表于 2018-07-02 | 分类于 TCP/IP | 阅读次数:

1、生成key文件

openssl genrsa -des3 -out https.key 1024

会提示输入密码,根据提示设置密码即可

Enter pass phrase for https.key:

Verifying - Enter pass phrase for https.key:

阅读全文 »

nvm安装node

发表于 2018-07-02 | 分类于 Node.js | 阅读次数:

nvm是Node Version Manager,即node版本管理。使用nvm可以很方便的安装不同版本的node,并在需要的时候随时切换node的版本。

下载并安装nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

查看所有node版本

nvm ls-remote
阅读全文 »

socket ICMP ping包发送与响应

发表于 2018-07-02 | 分类于 TCP/IP | 阅读次数:

项目中需要用到检测设备的外网连接状态,第一时间就想到了ping,平时在电脑上检测网络是否通也是使用ping的,比如:

  • ping 路由器ip可以检测局域网线路是否通
  • ping 114.114.114.114等外网ip就可以检测外网网络是否通
  • ping www.baidu.com等域名可以检测DNS是否配置成功

虽然在C程序中可以直接创建子进程调用shell命令的ping并等待分析返回的打印信息,但是创建进程开销比较大,不适合频繁调用。于是决定使用socket实现ping的功能。

ping是发送ICMP数据包也接收响应数据,可以参考busybox中的ping.c的源码。

阅读全文 »

socket结构体转换

发表于 2018-07-02 | 分类于 TCP/IP | 阅读次数:

一、ip字符串与结构体struct sockaddr_in

1、inet_addr

ip字符串转struct sockaddr_in

struct sockaddr_in dest_addr;
dest_addr.sin_addr.s_addr = inet_addr("114.114.114.114");
阅读全文 »

socket设置阻塞接收超时

发表于 2018-07-02 | 分类于 TCP/IP | 阅读次数:

1、设置阻塞接收以及超时时间

//设置阻塞
int flags = fcntl(sock, F_GETFL, 0);
fcntl(sockfd, F_SETFL, flags & ~O_NONBLOCK);

//设置接收超时时间
int timeout_ms=500;//毫米
struct timeval timeout;  
timeout.tv_sec = timeout_ms/1000;//秒  
timeout.tv_usec = (timeout_ms%1000)*1000;//微秒 
if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(struct timeval)) < 0) {  
    perror("setsockopt SO_RCVTIMEO failed:"); 
    printf("setsockopt SO_RCVTIMEO failed,timeout_ms=%d\n",timeout_ms);
    return -1;
}
//把SO_RCVTIMEO换成SO_SNDTIMEO就是发送超时
阅读全文 »

socket根据域名获取ip

发表于 2018-07-02 | 分类于 TCP/IP | 阅读次数:

1、得到struct hostent

struct hostent      *host;
if((host = gethostbyname(addr_url)) == NULL)  
{       
    printf("invalid addr_url(%s)\n", addr_url);  
    return -1;    
}
阅读全文 »
123…6
Jacob.wang

Jacob.wang

一名音视频行业的程序员

58 日志
16 分类
36 标签
RSS
CSDN GitHub Coding
友情链接
  • 暂无
© 2017 — 2020 Jacob.wang
访客数 访问量
Hosted by Coding Pages
粤ICP备18047603号