socket shutdown和close的区别】的更多相关文章

http://www.jianshu.com/p/eecab8d50697 shutdown() doesn't actually close the file descriptor—it just changes its usability. To free a socket descriptor, you need to use close(). shutdown是一种优雅地单方向或者双方向关闭socket的方法. 而close则立即双方向强制关闭socket并释放相关资源. 如果有多个进程…
假设server和client 已经建立了连接,server调用了close, 发送FIN 段给client(其实不一定会发送FIN段,后面再说),此时server不能再通过socket发送和接收数据,此时client调用read,如果接收到FIN 段会返回0,但client此时还是可以write 给server的,write调用只负责把数据交给TCP发送缓冲区就可以成功返回了,所以不会出错,而server收到数据后应答一个RST段,表示服务器已经不能接收数据,连接重置,client收到RST段…
[shutdown和close的区别] 当所有的数据操作结束以后,你可以调用close()函数来释放该socket,从而停止在该socket上的任何数据操作:close(sockfd); 你也可以调用shutdown()函数来关闭该socket.该函数允许你只停止在某个方向上的数据传输,而一个方向上的数据传输继续进行.如你可以关 闭某socket的写操作而允许继续在该socket上接受数据,直至读入所有数据. int shutdown(int sockfd,int how); Sockfd是需要…
一.区别介绍 shutDown()  当线程池调用该方法时,线程池的状态则立刻变成SHUTDOWN状态.此时,则不能再往线程池中添加任何任务,否则将会抛出RejectedExecutionException异常.但是,此时线程池不会立刻退出,直到添加到线程池中的任务都已经处理完成,才会退出.  shutdownNow() 根据JDK文档描述,大致意思是:执行该方法,线程池的状态立刻变成STOP状态,并试图停止所有正在执行的线程,不再处理还在池队列中等待的任务,当然,它会返回那些未执行的任务. 它…
网络通信七层参考模型介绍: 物理层: HUB,网线 链路层: MAC,ARP,交换机 网络层:IP,ICMP,IGMP,路由器 传输层: TCP,UDP 会话层: HTTP,SMTP,FTP,POP3 表示层: SOAP,SSL 应用层:HTTP,POP3等   TCP和Socket的区别: Socket是对网络层操作. TcpClient是对传输层的操作.   用Socket访问HTTP服务: 网络层 --> 传输层 --> 会话层 用TcpClient访问HTTP服务: 传输层 -->…
原文地址:Socket 与 WebSocket 1. 概述 WebSocket 是为了满足基于 Web 的日益增长的实时通信需求而产生的.在传统的 Web 中,要实现实时通信,通用的方式是采用 HTTP 协议不断发送请求.但这种方式即浪费带宽(HTTP HEAD 是比较大的),又消耗服务器 CPU 占用(没有信息也要接受请求).(下图来自 WebSocket.org) 而是用 WebSocket 技术,则会大幅降低上面提到的消耗:(下图来自 websocket.org) 关于更详细的描述,尹立的…
目录 16.基于udp协议的socket通信 为什么udp不会有粘包现象 DGRAM datagram#数据报文 发送sento (发送的信息,发送给的地址) 接收revefrom 客户端 服务端 tcp和udp的区别: 17.socketserver 16.基于udp协议的socket通信 import socket server=socket.socket(type=socket.SOCK_DGRAM) import socket server=socket.socket(socket.AF…
shutdown 系统调用关闭连接的读数据通道  写数据通道 或者 读写数据通道: 关闭读通道:丢弃socket fd 读数据以及调用shutdown 后到达的数据: 关闭写通道:不同协议处理不同:tcp协议,将所有的数据发送完成,发送完后发送FIN: 但是为了删除套接字和释放文件描述符,我们必须使用close();进程结束时,会调用close: enum sock_shutdown_cmd { SHUT_RD,// 关闭读 SHUT_WR,//关闭写 SHUT_RDWR,//关闭读写 }; i…
socket是网络传输层的一种技术,跟http有本质的区别,http是应用层的一个网络协议.使用socket技术理论上来讲, 按照http的规范,完全可以使用socket来达到发送http请求的目的,只要发送的数据包按照http协议来即可 Socket和http的区别: Socket是长连接,http是短连接 Socket是双向通信,http是单向的,只能客户端向服务器发送数据 Socket的数据完全由自己组织,http必须按照http协议来发送 Socket的使用场景: 1.客户端频繁请求服务…
init 首先看看LINUX系统几种运行级别# 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)# 1 - 单用户模式# 2 - 多用户,没有 NFS# 3 - 完全多用户模式(标准的运行级)# 4 – 系统保留的# 5 - X11 (x window)# 6 - 重新启动 (千万不要把initdefault 设置为6,否则将一直在重启 ) #init 0 切换到运行级别0动作为运行如下两个脚本: [root@limt rc0.d]# pwd /etc/rc.d/rc…