网络编程
文章平均质量分 76
The_Big_Sun
一个努力的牛犊
展开
-
AF_INET 和 PF_INET
AF 表示ADDRESS FAMILY 地址族 PF 表示PROTOCL FAMILY 协议族但这两个宏定义是一样的所以使用哪个都没有关系Winsock2.h中#define AF_INET 0#define PF_INET AF_INET所以在windows中AF_INET与PF_INET完全一样而在Unix/Linux系统中,转载 2016-09-07 16:54:14 · 405 阅读 · 0 评论 -
TCP之listen&backlog
出处:http://www.cnblogs.com/wanpengcoder/p/5354469.html1. listen函数:#include int listen(int sockfd, int backlog);ret-成功返回0 失败返回-1listen仅由服务器调用,它做两件事情:(1) 当socket创建一个套接字的时候,它被假设为一个主动套接字,转载 2017-05-04 09:59:04 · 320 阅读 · 0 评论 -
TCP之种种连接异常
出处:http://www.cnblogs.com/wanpengcoder/p/5356776.html1. connect出错:(1) 若TCP客户端没有收到syn分节的响应,则返回ETIMEOUT错误;调用connect函数时,内核发送一个syn,若无响应则等待6s后再发送一个,若仍然无响应则等待24s后在发送一个,若总共等待75s后仍未收到响应则返回本错误;(2) 若对转载 2017-05-04 09:58:16 · 1616 阅读 · 0 评论 -
TCP之非阻塞connect和accept
http://www.cnblogs.com/wanpengcoder/p/5358259.html套接字的默认状态是阻塞的,这就意味着当发出一个不能立即完成的套接字调用时,其进程将被投入睡眠,等待响应操作完成,可能阻塞的套接字调用可分为以下四类:(1) 输入操作,包括read,readv,recv,recvfrom,recvmsg;(2) 输出操作,包括write,write转载 2017-05-04 09:57:23 · 486 阅读 · 0 评论 -
通用套接字选项和TCP套接字选项
出处:http://www.cnblogs.com/wanpengcoder/p/5358647.html 1. 套接字选项函数原型:#include int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int sockf转载 2017-05-04 09:56:32 · 308 阅读 · 0 评论 -
TCP之Nagle算法&&延迟ACK
转载:http://www.cnblogs.com/wanpengcoder/p/5366156.html1. Nagle算法:是为了减少广域网的小分组数目,从而减小网络拥塞的出现;该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要收集这些少量的分组,并在ack到来时以一个分组的方式发送出去;其中小分组的定义转载 2017-05-04 09:55:31 · 408 阅读 · 0 评论 -
原始套接字&&数据链路层访问
出处:http://www.cnblogs.com/wanpengcoder/p/5372018.html1. 原始套接字能力:(1) 进程可以读写ICMP,IGMP等分组,如ping程序;(2) 进程可以读写内核不处理协议字段的ipv4数据报;如OSPF等;(3) 进程可以使用IP_HDRINCL套接字选项自行构造ipv4首部; 2. 原始套接字的创建:int转载 2017-05-04 09:54:20 · 470 阅读 · 0 评论 -
深入分析网络编程中踩过的坑
目录(?)[-]问题1server端业务进程响应心跳超时被监控进程kill导致数据或者逻辑异常问题2在接入层调用后端多个逻辑服务时某一个后端的服务异常导致接入层不能处理新的请求问题3使用spp实现简单的web服务器压测时短连接功能正常但是采用keeplive模式大约有40ms的时延问题1server端业务进程响应心跳超时被监控进程kill导致数据或者逻辑异常问题2在接入层调用后转载 2017-03-13 16:28:41 · 829 阅读 · 0 评论 -
epoll 的accept , read, write(重要)
在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:* EAGAIN: 再试一次* EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block* perror输出: Resource temporarily unavailable转载 2016-09-07 23:32:16 · 507 阅读 · 0 评论 -
Socket编程之非阻塞connect
出处:http://blog.sina.com.cn/s/blog_7977ed370101gvux.html非阻塞 connect:在一个 TCP 套接字被设置为非阻塞之后调用 connect ,connect 会立即返回 EINPROGRESS错误,表示连接操作正在进行中,但是仍未完成,与此同时 TCP 三次握手操作会同时进行。在这之后,我们可以通过调用 select来检查转载 2017-04-25 17:22:44 · 494 阅读 · 0 评论