摘要:
前面几节我们讨论了非阻塞IO的基本概念、Buffer的设计以及非阻塞connect的实现,现在我们使用它们来完成客户端的编写。 我们在http://www.cnblogs.com/inevermore/p/4049165.html中提出过,客户端需要监听stdin、stdout和sockfd。 这里需要注意的是 只有缓冲区可写的时候,才去监听sockfd和stdin的读事件。 过... 阅读全文
摘要:
我们为客户端的编写再做一些工作。 这次我们使用非阻塞IO实现connect函数。 int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 非阻塞IO有以下用处: 1.将三次握手的处理过程生下来,处理其他事情。 2.使用这个同时建立多个连接。 3.实现超时connect功能,本... 阅读全文
摘要:
本文我们来实现回射服务器的Buffer。 Buffer的实现 上节提到了非阻塞IO必须具备Buffer。再次将Buffer的设计描述一下: 这里必须补充一点,writeIndex指向空闲空间的第一个位置。 这里有三个重要的不变式: 1. 0 #define BUFFER_SIZE 1024 typedef struct { char buf_[BUFF... 阅读全文