c/c++(c++和网络编程)日常积累(二)
https://www.cnblogs.com/robinsons/p/3667032.html
https://blog.csdn.net/u013457167/article/details/50759811?utm_source=blogxgwz2
阻塞,非阻塞,同步,异步
https://www.jianshu.com/p/b8203d46895c
IO多路复用的三种机制Select,Poll,Epoll
https://www.jianshu.com/p/397449cadc9a
Socket中SO_REUSEADDR详解
1、一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用。
SO_REUSEADDR用于对TCP套接字处于TIME_WAIT状态下的socket,才可以重复绑定使用。server程序总是应该在调用bind()之前设置SO_REUSEADDR套接字选项。TCP,先调用close()的一方会进入TIME_WAIT状态
.......
https://blog.csdn.net/u010144805/article/details/78579528
C++ 11 左值,右值,左值引用,右值引用,std::move
https://blog.csdn.net/xiaolewennofollow/article/details/52559306
如何在C/C++中调用Shell脚本
http://baozh.github.io/2013-11/how-to-call-shell-script-in-c-plus-plus-program/
孤儿进程和僵尸进程
https://www.cnblogs.com/lfri/p/12575637.html
c++ split分割字符串实现
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
void split(const string& s,vector<int>& sv,const char flag = ' ') {
sv.clear();
istringstream iss(s);
string temp; while (getline(iss, temp, flag)) {
sv.push_back(stoi(temp));
}
return;
}
TCP的TIME_WAIT
https://www.cnblogs.com/zhenbianshu/p/10637964.h
linux管理时间
https://blog.csdn.net/liumiaocn/article/details/79250793
https://www.cnblogs.com/pipci/p/12833228.html
Linux 关闭系统时间同步
https://blog.csdn.net/cb1576351/article/details/106040844
源于一次项目需要修改系统时间,但是每次修改后又被同步回网络时间,找了好久发现是这个
原因:
NTP即Network Time Protocol(网络时间协议),是一个互联网协议,用于同步计算机之
间的系统时钟。timedatectl程序可以自动同步Linux系统时钟到使用NTP的远程服务器(大部
分linux系统自带ntp服务而不带ntp client,所以纠结了半天找不到为什么都没装NTP每次改
了时间又被同步回网络时间去了)。
1、timedatectl命令:
timedate
Local time: 三 2017-07-05 10:57:53 CST
Universal time: 三 2017-07-05 02:57:53 UTC
Timezone: Asia/Chongqing (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
2、开启关闭ntp
timedatectl set-ntp true/false
其它
查找和设置Linux本地时区
1.显示系统的当前时间和日期
timedatectl status
结果中RTC time就是硬件时钟的时间。
2.Linux系统上的time总是通过系统的timezone设置的,查看当前时区:
timedatectl | grep Time
3.查看所有可用的时区:
timedatectl list-timezones
timedatectl list-timezones | egrep -o “Europe/L.*”
timedatectl list-timezones | egrep -o “America/N.*”
5.在Linux中设置本地时区,使用set-timezone开关:
timedatectl set-timezone “Asia/shagnhai
5.在Linux中设置本地时区,使用set-timezone开关:
timedatectl set-timezone “Asia/shagnhai
7.只设置日期的话可以使用set-time开关以及YY:MM:DD(年,月,日)的日期格式。
timedatectl set-time 20151120
8.设置日期和时间:
timedatectl set-time '16:10:40 2015-11-20
9.设置硬件时钟为UTC可以使用 set-local-rtc boolean-value选:
首先确定硬件时钟是否设置为本地时区:
9.设置硬件时钟为UTC可以使用 set-local-rtc boolean-value选:
首先确定硬件时钟是否设置为本地时区:
timedatectl | grep local
将硬件时钟设置为本地时区:
timedatectl set-local-rtc 1
将硬件时钟设置为UTC:
timedatectl set-local-rtc 0
C语言 用http post方式 上传json数据流程参考
https://blog.csdn.net/qq_36072126/article/details/103836282
创建json结构数据
my_buff就是最后要post的content
cJSON *usr ;
usr=cJSON_CreateObject(); //创建根数据对象
cJSON_AddStringToObject(usr,"brand",ETC_baseinfo.brand); //厂家型号
cJSON_AddStringToObject(usr,"deviceIP",ETC_baseinfo.deviceIP); //车辆检测器IP地址
cJSON_AddStringToObject(usr,"deviceId",ETC_baseinfo.deviceId); //设备编号
cJSON_AddNumberToObject(usr,"devicePort",ETC_baseinfo.devicePort); //车辆检测器Port端口
cJSON_AddStringToObject(usr,"gantryId",ETC_baseinfo.gantryId); //门架编号
cJSON_AddStringToObject(usr,"serverAddress",ETC_baseinfo.serverAddress); //车辆检测器服务地址
cJSON_AddStringToObject(usr,"stateTime",ETC_baseinfo.stateTime); //数据生成时间
char *out = cJSON_Print(usr); //将json形式打印成正常字符串形式
printf("out old string:\n%s\n",out);
free(out);
char *out2 = cJSON_PrintUnformatted(usr);
sprintf(my_buff,"%s",out2);
free(out2);
cJSON_Delete(usr); // 释放内存
json库nlohmann简单使用教程,快速入手,完成json对象的构建,从STL构造json,以及序列化和反序列化操作,二进制写入、读取本地数据
https://blog.csdn.net/u011341856/article/details/108797920
c/c++(c++和网络编程)日常积累(二)的更多相关文章
- iOS开发网络篇—网络编程基础(二)
下面叙述的是关于几个必须要知道的iOS网络编程入门级别的要点: 1.客户端如何找到连接的服务器 客户端通过URL找到想要连接的服务器 2.什么是URL URL的全称是Un ...
- 网络编程-socket(二)
https://www.cnblogs.com/mys6/p/10587673.html(网络编程) 持续通话 总结 # 网络开发的架构 :C/S B/S# mac地址是什么 -身份证号# ip地址 ...
- TCP/IP网络编程系列之二(初级)
套接字类型与协议设置 我们先了解一下创建套接字的那个函数 int socket(int domain,int type,int protocol);成功时返回文件描述符,失败时返回-1.其中,doma ...
- Linux 网络编程详解二(socket创建流程、多进程版)
netstat -na | grep " --查看TCP/IP协议连接状态 //socket编程提高版--服务器 #include <stdio.h> #include < ...
- VC++ 网络编程总结(二)
2.基本的Windows Socket API编程 需要在程序中添加下面的包含语句:#include <winsock2.h> #pragma comment( lib, " ...
- [C#]网络编程系列专题二:HTTP协议详解
转自:http://www.cnblogs.com/zhili/archive/2012/08/18/2634475.html 我们在用Asp.net技术开发Web应用程序后,当用户在浏览器输入一个网 ...
- Linux网络编程学习(十二) ----- 结语
该书提前看完了,重点看了第四章和第六章,第七章以后只是大致浏览了一下,如果以后工作中涉及这一块再仔细研究一下,大概花了二十天的样子,主要了解了进程间的通信方式.socket编程以及五种I/O模式,看的 ...
- python网络编程(十二)
协程 协程,又称微线程,纤程.英文名Coroutine. 协程是啥 首先我们得知道协程是啥?协程其实可以认为是比线程更小的执行单元. 为啥说他是一个执行单元,因为他自带CPU上下文.这样只要在合适的时 ...
- iOS网络编程解析协议二:XML数据传输解析
XML两种解析方式,一种是SAX,NSXMLParser是SAX方法解析,另一种是DOM(Document Object Model); 区别: SAX: 只能读,不能修改,只能顺序访问,适合解析大型 ...
- unix网络编程笔记(二)
第四章笔记 1. 基本Tcpclient/server程序的套接字函数 2. socket函数: int socket(int family,int type,int protocol); (1)so ...
随机推荐
- 【故障公告】数据库服务器 CPU 100% 引发全站故障
今天 11:12-12:03 期间,园子使用的阿里云 RDS 实例(SQL Server2016 标准版,16核CPU)出现 CPU 100% 问题,引发全站故障,由此给您带来麻烦,请您谅解. 发现故 ...
- Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization
目录 Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization 1.Abstract 2.Intr ...
- vivo 评论中台的流量及数据隔离实践
一.背景 vivo评论中台通过提供评论发表.点赞.举报.自定义评论排序等通用能力,帮助前台业务快速搭建评论功能并提供评论运营能力,避免了前台业务的重复建设和数据孤岛问题.目前已有vivo短视频.viv ...
- CF1408G Clusterization Counting
首先,我们需要给一个连通块找到一个直观的合法判定解. 那么我们必须以一种直观的方式将边按照权值分开,这样才能直观地判定一个合法的组. 一个常见的方式是将边从小到大依次加入进来,那么在任意时刻图上存在的 ...
- C语言system函数
我们今天来看看在windows操作系统下system () 函数详解(主要是在C语言中的应用) 注意:在windows下的system函数中命令可以不区别大小写! 函数名: system 功 能: 发 ...
- uniap tab list 滑动
效果如下 <uni-popup ref="bankListAll" type="dialog"> <ty-mutiple-select :mu ...
- 关于unix下cp命令复制权限不够的问题
例如要将mysql-5.7.17-macos10.12-x86_64.tar.gz 拷贝到/usr/local目录下时,执行cp mysql-5.7.17-macos10.12-x86_64.tar. ...
- EPF:一种基于进化、协议感知和覆盖率引导的网络协议模糊测试框架
本文系原创,转载请说明出处:from 信安科研人 目录 实验 工具的安装 1.安装AFL++ 2.安装epf 对IEC104协议库进行fuzz 实验准备 使用AFL++中的编译器插桩 开始fuzz 原 ...
- 汉明码、海明校验码(Hamming Code)
目录 基础知识 汉明码/海明校验码 计算 基础知识 码距:又叫海明距离,是在信息编码中,两个编码之间对应位上编码不同的位数.例如编码100110和010101,第1.2.5.6位都不相同,所以这两个编 ...
- MATLAB基础学习篇(1)
MATLAB中只定义了以2和10为底对数,其它 使用换底公式,例如:log8(7)=log7/log8. x=input('Please enter x:'); y=input('Please ent ...