首页 > 其他 > 详细

socket的shutdown与close

时间:2015-04-16 17:23:57      阅读:120      评论:0      收藏:0      [点我收藏+]

shutdown原型

int shutdown(int socket, int how);
socket 指定socket的文件描述符
how    指定shutdown的类型
SHUT_RD

     禁止读操作

SHUT_WR
    禁止写操作
SHUT_RDWR
    禁止读和写

    

close原型

int close(int fd);
    close是内核函数,关闭进程占有的文件句柄,内核中的每一个文件句柄都有一个引用计数,每个打开该文件句柄的进程都将计数+1,每次调用close会将进程占有的文件描述符关闭,同时内核中的引用计数-1.

 

区别

     shutdown直接作用于socket连接,调用shutdown以后,所有关联该socket连接的文件描述符均被影响(不能读或者写,或者均不能),即影响是跨进程的,shutdown不会关闭socket,socket会在关联的文件描述符内核计数为0时被动关闭。

     close作用于进程打开的文件描述符,close以后进程将不能够访问该socket,该socket连接会在引用计数变为0时被动关闭,假如多个进程访问同一个socket的文件描述符,其中一个进程调用close(sockfd)其他进程可以继续进行socket通信。

socket的shutdown与close

原文:http://www.cnblogs.com/learn-my-life/p/4432389.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!