int close(int sockfd); close一个TCP套接字的默认行为是把该套接字标记成已关闭,然后立即返回到调用进程, 该套接字描述符不能再由调用进程使用,也就是说它不能再作为read或write的第一个参数 并发服务器中父进程关闭已连接套接字只是导致相应描述符的引用数值减1,既然引用 ...
分类:
其他好文 时间:
2016-04-03 21:54:25
阅读次数:
277
accept函数由TCP服务器调用,用于从以完成连接队列队头返回下一个以完成连接 如果以完成队列为空,那么进程被投入睡眠(假定套接字为默认的阻塞方式) int acceptn ( int sockfd, struct sockaddr * cliaddr,socklen_t * addrlen); ...
分类:
其他好文 时间:
2016-04-03 17:30:19
阅读次数:
139
bind函数把一个本地协议地址赋予一个套接字 对于网际协议,协议地址是32位的IPv4地址或128位的IPv6与16位的TCP或UDP端口号的组合 int bind ( int sockfd, const struct sockaddr * myaddr ,socklen_t addrlen); b ...
分类:
其他好文 时间:
2016-04-03 15:58:50
阅读次数:
158
epoll出现Bad file descriptor的原因 错误的顺序: close(); epoll_ctl(epollfd, EPOLL_CTL_DEL, sockfd, &ev); 正确的顺序: epoll_ctl(epollfd, EPOLL_CTL_DEL, sockfd, &ev); c ...
分类:
其他好文 时间:
2016-04-03 14:32:37
阅读次数:
359
TCP客户用connect函数来建立与TCP服务器的连接 int connect (int sockfd, const sockaddr * servaddr, socklen_t addrlen); sockfd是由socket函数返回的套接字描述符 servaddr指向套接字地址结构的指针 ad ...
分类:
其他好文 时间:
2016-04-03 14:30:40
阅读次数:
145
名称 accept, accept4——接受套结字连接 摘要 描述 accept系统调用被用于面向连接的套结字类型(SOCK_STREAM,SOCK_SEQPACKET)。它提取排队等待连接sockfd的第一个连接请求,并且创建一个新的连接套结字,返回指向这个连接套结字的文件描述符,新创建的连接套结
分类:
其他好文 时间:
2016-03-17 09:30:57
阅读次数:
139
摘要 描述 listen()把套结字sockfd标记为被动套结字,也就是说这个套结字将通过accept()接受请求。 参数sockfd一个文件描述符,指向类型为SOCK_STREAM或者SOCK_SEQPACKET的套结字。 参数backlog定义了排队等待连接sockfd的最大长度。如果一个连接请
分类:
其他好文 时间:
2016-03-17 08:22:40
阅读次数:
161
网络通信的高级函数 1、recv和send 函数原型: int recv(int sockfd,void *buf,int len,int flags); int send(int sockfd,void *buf,int len,int flags); 前面的三个参数和read、write一样,第
分类:
其他好文 时间:
2016-03-07 22:27:32
阅读次数:
158
函数原型: ssize_t recv(int sockfd, void *buf, size_t len, int flags); 该函数第一个参数制定接收端套接字描述符; 第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据; 第三个参数指明缓冲区buf的长度; 第四个参数一般置0;
分类:
系统相关 时间:
2016-02-15 16:34:25
阅读次数:
211
一.概述 同上一篇tcp一样,udp也是封装在ip报文里面。创建UDP的原始套接字如下: 1 (sockfd = socket(PF_INET, SOCK_RAW, IPPROTO_UDP); 同样,如果要构造udp的ip首部,要开启IP_HDRINCL选项! udp首部格式: udp的不可靠性,比
分类:
系统相关 时间:
2016-01-30 01:54:23
阅读次数:
291