TypeCodes

Linux C++使用函数模板实现JSON数据快速和完整写入到文件

昨天在自己的CentOS7机器上编译了JSONCPP库,然后根据api写了下面这个简单的测试程序。代码涉及了文件流数据读取和写入、jsoncpp库的读写api的使用。整个处理流程是先读取一个json格式文件的内容,然后把这些内容分别用jsoncpp库的Json::FastWriter(快速写入)和Json::StyledWriter(完整写入)这两个方式写入到两个文件中,最后读取这两个文件并输出。

Linux C++使用函数模板实现JSON数据快速和完整写入到文件

- 阅读剩余部分 -

Linux TCP客户端出现CLOSE_WAIT后进入死循环

前文中讲述了Linux服务端TCP的某个链路变成CLOSE_WAIT状态,然后由于客户端已经关闭了(发送了RST标志的报文),那么服务端如果继续向这个链路中写入数据的话就会收到SIGPIPE信号而终止,这篇文章主要通过客户端进入CLOSE_WAIT后由于收到服务端产生的RST标志报文进入死循环的情况。注:RST表示复位,用来关闭异常的连接。

CentOS服务端建立监听

- 阅读剩余部分 -

自己实现inet_aton和inet_ntoa函数功能

之前遇到过要自己实现inet_atoninet_ntoa函数功能的问题,这里总结一下。

1 基本知识

网络字节序是大端模式,那么内存中的低地址存放的是数据的高位,内存中的高地址存放的是数据的低位。 inet_aton是将IPv4地址(点分法)转换成对应的十进制整数;而inet_ntoa是将十进制整数转换成对应的IPv4地址(点分法)。

- 阅读剩余部分 -