
Linux网络编程
文章平均质量分 78
startFromWeb
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C++专题】static_cast, dynamic_cast, const_cast探讨
首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 int ival = 3;double dval = 3.14159;转载 2015-01-08 17:08:13 · 740 阅读 · 0 评论 -
protobuf 使用相关
google protobuf的介绍和使用官方地址为:https://developers.google.com/protocol-buffers/先总结一下如何在eclipse中轻松的使用protobuf.首先需要安装一个插件叫protobuf-dt,介绍及安装说明:https://code.google.com/p/protobuf-dt/These ins原创 2015-01-23 00:45:30 · 1065 阅读 · 0 评论 -
深入探讨TCP_NODELAY
在网络拥塞控制领域,我们知道有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这个算法来尝试解决福特汽车公司的网络拥塞问题(RFC 896),该问题的具体描述是:如果我们的应用程序一次产生1个字节的数据,而这个1个字节数据又以网络数据包的形式发送到远端服务器,那么就很容易导致网络由于原创 2015-01-22 16:26:48 · 945 阅读 · 0 评论 -
Linux下Socket编程学习(一)
sockaddr_in详细讲解IPV4套接口地址结构通常也称为”网际套接字地址结构“,它以"sockaddr_in"命名,定义在头文件中struct sockaddr_in{ uint8_t sin_len; //整个sockaddr_in结构体的长度 sa_family_t sin_family; //指定地址家族,AF_INET使用的是ipv4协议原创 2014-12-30 13:50:43 · 812 阅读 · 0 评论 -
Linux下Socket编程学习(二)
socket函数包头文件创建一个套接字用于通信int socket(int domain,int type,int protocol);domain:指定通信协议族type:指定socket类型,流失套接字SOCK_STREAM 数据报套接字SOCK_DGRAM 原始套接字SOCK_RAWprotocol:协议类型返回值:成功返回非负整数,它与文件描述符类似,失败返回-原创 2014-12-30 14:10:47 · 734 阅读 · 0 评论 -
Linux下Socket编程学习(五)
这章讲下产生SIGPIPE信号的原因往一个已经收到FIN的套接字中写是允许的,接收到FIN仅仅代表对方不再发送数据。如果对方进程不存在了,你还写数据那么会返回一个RST段RST段之后,如果再调用write就会产生SIGPIPE信号,对于这个信号直接忽略就ok了singal(SIGPIPE,SIG_IGN);五种I/O模型阻塞I/O非阻塞I/OI/O复用(sele原创 2014-12-30 15:42:33 · 815 阅读 · 0 评论 -
Linux下Socket编程学习(四)
recv(int sockfd,void* buf,size_t len,int flags)与read基本相同异同点:1、recv只能用于套接字2、recv比read多了个flags选项 falgs:MSG_OOB 指定接收带外数据,通过紧急指针发送的数据,TCP头部有个紧急指针指定了带外数据 MSG_PEEK 接收缓冲区中数据,但是并不清除原创 2014-12-30 14:58:58 · 827 阅读 · 0 评论 -
Linux下Socket编程学习(三)
1、流协议与粘包2、粘包产生的原因3、粘包处理方案4、readn writenTCP 是流协议没有边界容易产生粘包。解决方案: 1、定长包 2、包尾加\r\n(ftp) 有一定问题 消息本身具有\r\n就无法区分边界 3、包头加上包体长度 4、更复杂的应用协议解决TCP粘包问题,读取指定大小的数据 size_t readn(in原创 2014-12-30 14:36:00 · 795 阅读 · 0 评论 -
Linux下打印调用堆栈
废话不说直接写代码 不懂函数自己去manvoid Exception::fillStackTrace(){ const int len = 200; void* buffer[len]; int nptrs = ::backtrace(buffer, len); char** strings = ::backtrace_symbols(buffer, nptrs);原创 2015-01-09 12:57:20 · 1497 阅读 · 0 评论 -
Linux中atfork的使用
#include int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));调用fork时,内部创建子进程前在父进程中会调用prepare,内部创建子进程成功后,父进程会调用parent,子进程会调用child。看个例子#include #原创 2015-01-09 16:01:32 · 815 阅读 · 0 评论 -
Makefile经典教程(掌握这些足够)
目录(?)[-]Makefile 介绍1 Makefile的规则2 一个示例3 make是如何工作的4 makefile中使用变量5 让make自动推导6 另类风格的makefile7 清空目标文件的规则Makefile 总述1 Makefile里有什么2Makefile的文件名3 引用其它的Makefile4 环境变量 MAKEFILES5 make的工作方式Ma转载 2016-03-16 16:15:05 · 1025 阅读 · 0 评论