ChinaUnix.net
相关文章推荐:

python socket close shutdown 区别

本帖最后由 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 阅读(5759) 回复(33)

相关讨论

我在SCO UNIX下写了一个TCP/IP服务程序,客户端是delphi写的,服务端发送数据报后关闭socket(shutdown(handle,5);close(handle);) 客户端接收不到数据,但是在发送完数据后使用sleep(50);然后再关闭socket 就可以收到,请高手解决帮帮了,谢谢 (服务端使用阻塞方式,客户端使用非阻塞方式)

by 大马虎 - C/C++ - 2013-12-24 22:25:24 阅读(9188) 回复(9)

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

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

socket编程中,shutdown(sockfd,2)和close(fd)有区别吗? 我感觉没区别.

by wlia - C/C++ - 2009-08-11 17:55:02 阅读(2283) 回复(2)

本帖最后由 sjdy521 于 2014-08-27 17:54 编辑 [code]use socket; socketpair(my $master_fd,my $worker_fd,AF_UNIX,SOCK_STREAM,0) or die $!; if(fork ==0){#worker sleep 1; shutdown $worker_fd,2; } else{#master while(<$master_fd>){ print; [/code][code]use socket; socketpair(my $master_fd,my $worker_fd,AF_UNIX,SOCK_STREAM,0) or die $!; if(fork ==0){#worker sleep 1; close ...

by sjdy521 - Perl - 2014-09-01 12:09:34 阅读(1758) 回复(2)

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 阅读(1233) 回复(0)

在Linux socket关闭连接的方法有两种分别是shutdownclose,首先看一下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编程中的shutdownclose 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)

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

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

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

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

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

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