
网络编程
赤云
这个作者很懒,什么都没留下…
展开
-
1.使用信号量完成多线程顺序处理
信号量的主要函数有:int sem_init(sem_t *sem,int pshared,unsigned int value);int sem_wait(sem_t *sem);int sem_post(sem_t *sem);sem_init用于对指定信号初始化,pshared为0,表示信号在当前进程的多个线程之间共享,value表示初始化信号的值。 sem_wait可以用来阻塞当前线程...原创 2018-04-18 17:53:52 · 1705 阅读 · 0 评论 -
15.TCP长连接与短连接、心跳机制
转自:1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模拟一下TCP短连接...转载 2018-11-14 11:35:11 · 515 阅读 · 0 评论 -
14.优雅关闭socket的方法:SO_LINGER
这个参数对应大量短链接的服务器很有必要! shutdown(fd, SHUT_RDWR); struct linger linger; linger.l_onoff = 1; linger.l_linger = 0; setsockopt(fd, SOL_SOCKET, SO_LINGER, (char *) &linger, siz...转载 2018-09-27 16:57:07 · 1437 阅读 · 0 评论 -
13.CentOS 7.3 Xinetd服务的安装与配置
一、Linux守护进程与初始化进程1. 什么是守护进程Linux服务器的主要任务就是为本地或远程用户提供各种服务。通常Linux系统上提供服务的程序是由运行在后台的守护进程(Daemon)来执行。一个实际运行中的Linux系统一般会有多个这样的程序在运行。这些后台守护进程在系统开机后就运行了,并且在时刻地监听前台客户地服务请求,一旦客户发出了服务请求,守护进程便为它们提供服务。Window...转载 2018-08-08 08:23:19 · 9258 阅读 · 2 评论 -
12.RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比
最近一段时间一直在研究rtsp和rtp,现在写博客总结一下,也是对知识的一种巩固吧。rtsp的协议的请求流程及格式请参考一下链接:http://blog.youkuaiyun.com/u010425035/article/details/10410851下面是我用VLC播放器获取海康NVR视频的截图(此次获取是基于TCP的):下面来看一下针对每一条消息的详细截图:客户端发送的OPTION消...转载 2018-08-07 13:55:03 · 3774 阅读 · 0 评论 -
11.使用信号量完成互斥操作
一、首先:我们要知道信号量是什么? 信号量的本质是数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。这是书本上介绍的信号量的概念,自己的理解比较简单: 信号量就是具有原子性的计数器,就相当于一把锁,在每个进程要访问临界资源时,必须要向信号量拿个锁”,...转载 2018-07-04 08:39:27 · 1609 阅读 · 0 评论 -
10.MQTT源码交叉编译与移植
基于MQTT源码的嵌入式LINUX移植,网上可参看资料几乎没有,估计是用的不多,没什么人弄,又或者太简单,没人写参考。这里记录下编译与移植过程。大致有三部分,交叉编译openssl、交叉编译MQTT、安装MQTT服务器。1 交叉编译OPENSSL因为MQTT用到OPENSSL库,所以编译MQTT的时候要先编译OPENSSL。解压源文件,创建openssl安装目录,配置openssl Makefil...转载 2018-06-27 14:09:56 · 906 阅读 · 0 评论 -
9.tcp设置超时检测和检测网线是否断开
使用在服务器中 //设置超时时间 struct timeval timeout = {5, 0}; err = setsockopt(this->sock_client,SOL_SOCKET, SO_SNDTIMEO,(const char*)&timeout, sizeof(timeout)); if(err != 0x00){ return -1;} ...原创 2018-06-26 08:58:50 · 2062 阅读 · 0 评论 -
关于C++中计算时间的一些总结
关于C++中计算时间的一些总结方法一:clock()计时函数clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:clock_t clock(void) ;简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,...转载 2018-06-07 09:05:38 · 310 阅读 · 0 评论 -
8.CRC8算法
1、 CRC8标准生成多项式CRC-8 x8+x5+x4+1 0x31(0x131)CRC-8 x8+x2+x1+1 0x07(0x107)CRC-8 x8+x6+x4+x3+x2+x1 0x5E(0x15E)123注:由于多项式的最高为都为1,并且在代码的crc8计算中,最高位也是不使用的, ...转载 2018-06-12 08:48:03 · 26011 阅读 · 2 评论 -
7.网络编程中阻塞和非阻塞socket的区别
阻塞socket和非阻塞socket建立连接阻塞方式下,connect首先发送SYN请求道服务器,当客户端收到服务器返回的SYN的确认时,则connect返回.否则的话一直阻塞.非阻塞方式,connect将启用TCP协议的三次握手,但是connect函数并不等待连接建立好才返回,而是立即返回。返回的错误码为EINPROGRESS,表示正在进行某种过程. 接收连接对于阻塞方式的倾听sock...转载 2018-06-04 18:36:22 · 500 阅读 · 0 评论 -
1.MQTT协议笔记之头部信息
前言MQTT(Message Queue Telemetry Transport),遥测传输协议,提供订阅/发布模式,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),可以简单概括为物联网打造,官方总结特点如下:1.使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。2. 对负载内容屏蔽的消息传输。3. 使用 TCP/IP 提供网络连接。4. 有三种消...转载 2018-05-23 16:35:30 · 634 阅读 · 0 评论 -
4.TCP/IP理论
1 初识TCP/IP1.TCP/IP体系结构和OSI体系结构1.OSI参考模型与TCP/IP 图解OSITCP/IPprotocol(协议)explain简应用层应用层HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3应用层与应用程序界面沟通,以达至展示给用户的目的。 在此常见的协定有: HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3等提供应用程序间通信...转载 2018-04-28 15:36:31 · 463 阅读 · 0 评论 -
3.tcp中的阻塞与非阻塞
struct timeval timeout = {10, 0}; int err = 0x00; err = setsockopt(client_fd, SOL_SOCKET, SO_SNDTIMEO,(const char*)&timeout, sizeof(timeout)); if(err != 0x00){...原创 2018-04-26 15:05:59 · 1626 阅读 · 0 评论 -
6.HTTP认证方式
HTTP请求报头: AuthorizationHTTP响应报头: WWW-AuthenticateHTTP认证 基于 质询 /回应( challenge/response)的认证模式。◆ 基本认证 basic authentication ← HTTP1.0提出的认证方法 客户端对于每一个realm,通过提供用户名和密码来进行认证的方式。 ※ 包含密码的明文传递 基本认证步骤...转载 2018-05-04 11:53:47 · 189 阅读 · 0 评论 -
2.地址已经被使用——Address already in use
很多socket编程的初学者可能会遇到这样的问题:如果先ctrl+c结束服务器端程序的话,再次启动服务器就会出现Address already in use这个错误,或者你的程序在正常关闭服务器端socket后还是有这个问题。正如下面的这段简单的socket程序。 server.c[c-sharp] view plain copy#include <sys/types.h> #in...转载 2018-04-25 14:53:26 · 5210 阅读 · 0 评论 -
CURL的学习
https://curl.haxx.se/libcurl/c/libcurl-tutorial.html原创 2019-01-02 15:01:03 · 388 阅读 · 0 评论