ChinaUnix.net
相关文章推荐:

shutdown socket

shutdown(1)函数关闭了对socket的写入, 那下次要继续写入怎么再次开启对socket的写入呢?

by lin_wang - Perl - 2009-02-19 10:49:52 阅读(2148) 回复(5)

相关讨论

socket关闭有2个close,shutdown 他们之间的区别: close-----关闭本进程的socket id,但链接还是开着的,用这个socket id的其它进程还能用这个链接,能读或写这个socket id shutdown--则破坏了socket 链接,读的时候可能侦探到EOF结束符,写的时候可能会收到一个SIGPIPE信号,这个信号可能直到socket buffer被填充了才收到,shutdown还有一个关闭方式的参数,0 不能再读,1不能再写,2 读写都不能, 本文来自ChinaUnix博客,如果查看原文请...

by ovipgdft - 网络技术文档中心 - 2006-10-12 14:00:49 阅读(1234) 回复(0)

本帖最后由 seufy88 于 2014-04-01 21:01 编辑 这两个的区别在网上都有好多文章. 只是我还是有不明点.所以想请教一下大家. 这里不考虑多进程共享socket id这种情况. 单纯的讨论. close (socket id): 马上发送FIN信号,所有的未完成发送或者接受的数据都将被丢失 close成功后,对这个socket id进行read/write都将失败. 但是从TCP层面将,close只是能控制本方发送FIN到对方,并不能控制对方何时发送FIN过来. 请问在这种情况下,如果...

by seufy88 - Linux环境编程 - 2014-04-21 12:05:18 阅读(5783) 回复(33)

在Linux socket关闭连接的方法有两种分别是shutdown和close,首先看一下shutdown的定义 #include int shutdown(int sockfd,int how); how的方式有三种分别是 SHUT_RD(0):关闭sockfd上的读功能,此选项将不允许sockfd进行读操作。 SHUT_WR(1):关闭sockfd的写功能,此选项将不允许sockfd进行写操作。 SHUT_RDWR(2):关闭sockfd的读写功能。 成功则返回0,错误返回-1,错误码errno:EBADF表示sockfd不是一个有效描述符;ENOT...

by lxjeanse - Linux文档专区 - 2009-10-16 23:16:17 阅读(1925) 回复(0)

Linux socket编程中的shutdown和close 1,只要TCP栈的读缓冲里还有未读取(read)数据,则调用close时会直接向对端发送RST。 2,shutdownsocket描述符没有关系,即使调用shutdown(fd, SHUT_RDWR)也不会关闭fd,最终还需close(fd)。 3,可以认为shutdown(fd, SHUT_RD)是空操作,因为shutdown后还可以继续从该socket读取数据,这点也许还需要进一步证实。 4,在已发送FIN包后write该socket描述符会引发EPIPE/SIGPIPE。 5,当有多个...

by marvinlee - Linux文档专区 - 2009-08-30 03:20:55 阅读(987) 回复(0)

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/60705/showart_1074946.html

by phrack2561 - 网络技术文档中心 - 2008-07-07 13:50:08 阅读(1117) 回复(0)

shutdown(sockfd,2)后是不是这个套接字描述符不会被释放? 必须用close(sockfd)么?

by undeadboy - 程序开发 - 2006-06-19 22:16:21 阅读(745) 回复(1)

shutdown(sockfd,2)后是不是这个套接字描述符不会被释放? 必须用close(sockfd)么?

by undeadboy - Linux环境编程 - 2006-06-19 22:16:21 阅读(1278) 回复(1)

我查了很多关于socket的close和shutdown的材料,觉得还是晕晕的,请帮忙理解一下。 ===== 引用1: Close()和shutdown()——结束数据传输   当所有的数据操作结束以后,你可以调用close()函数来释放该socket,从而停止在该socket上的任何数据操作:close(sockfd);   你也可以调用shutdown()函数来关闭该socket。该函数允许你只停止在某个方向上的数据传输,而一个方向上的数据传输继续进行。如你可以关闭某socket的写操作而...

by wkathy - 程序开发 - 2006-06-04 18:12:26 阅读(5656) 回复(9)

我查了很多关于socket的close和shutdown的材料,觉得还是晕晕的,请帮忙理解一下。 ===== 引用1: Close()和shutdown()——结束数据传输   当所有的数据操作结束以后,你可以调用close()函数来释放该socket,从而停止在该socket上的任何数据操作:close(sockfd);   你也可以调用shutdown()函数来关闭该socket。该函数允许你只停止在某个方向上的数据传输,而一个方向上的数据传输继续进行。如你可以关闭某socket的写操作而...

by wkathy - Linux环境编程 - 2006-06-04 18:12:26 阅读(11764) 回复(9)
by shiva - C/C++ - 2005-03-03 18:25:28 阅读(2326) 回复(2)