天天看点

socket的相关操作

bind 成功返回0,失败返回-1并设置errno

2.2 常见的失败有EACCES:被绑定的地址是受保护的,仅仅是超级用户可以访问

EADDRINUSE:被绑定的地址正在使用

3.监听socket、

创建和命名后,是不能直接被客户端访问,需要创建一个监听队列来存放待处理的客户连接

3.1 int listen(int sockfd, int backlog);

backlog参数提示内核监听队列的最大长度

超过之后,就不再受理客户连接

错误消息是ECONNREFUSED

listen唱功返回0,失败返回-1并且设置errno

完整的连接只是backlog+1 个

4.接受连接

int accept(int sockfd,struct sockaddr addr,socklen_t addrlen)

问题:如果有个客户端请求出现网络异常或者掉线,会怎样?

答案:accept只是从监听队列取出来连接,不论连接出于什么状态,更不会关心网络变化

本文转自 jackdongting 51CTO博客,原文链接:http://blog.51cto.com/10725691/2067471