zoukankan      html  css  js  c++  java
  • socket shutdown选项

    Shut down one or both halves of the connection. If how is SHUT_RD, further receives are disallowed. If how is SHUT_WR, further sends are disallowed. If how is SHUT_RDWR, further sends and receives are disallowed. Depending on the platform, shutting down one half of the connection can also close the opposite half (e.g. on Mac OS X, shutdown(SHUT_WR) does not allow further reads on the other end of the connection).
    
    Note that there are no methods read() or write(); use recv() and send() without flags argument instead.
    
    关闭一个或者一半的连接 如果socket.shutdown(how)
    如果how值是SHUT_RD,则不允许进步接收 
    
    
    如果how是SHUT_WR ,则不允许发送 
    
    如果how 是SHUT_RDWR,接下来发和手都不允许
    
    此时能从服务端读取数据
    
    import socket
    import time
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(("192.168.137.2",8888))
    #print s.getsockopt()
    print s.getsockname()
    print s.getpeername()
    #s.sendall("this is shutdown test" + "
    ")
    s.send('8888777')
    
    print dir(socket.herror)
    #print dir(socket.herror)
    # s.shutdown(socket.SHUT_RDWR)
    #s.shutdown(socket.SHUT_RDWR)
    print(socket.SHUT_RDWR)
    print(socket.SHUT_RD)
    print(socket.SHUT_WR)
    #print s.recv(90)
    s.shutdown(0)
    time.sleep(10)
    print s.recv(90)
    s.send('8888777')
    
    # while (1==1):
    #     print s.recv(90)
    
    
    
    
    此时能从服务端读取数据,
    
    
    import socket
    import time
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(("192.168.137.2",8888))
    #print s.getsockopt()
    print s.getsockname()
    print s.getpeername()
    #s.sendall("this is shutdown test" + "
    ")
    s.send('8888777')
    
    print dir(socket.herror)
    #print dir(socket.herror)
    # s.shutdown(socket.SHUT_RDWR)
    #s.shutdown(socket.SHUT_RDWR)
    print(socket.SHUT_RDWR)
    print(socket.SHUT_RD)
    print(socket.SHUT_WR)
    #print s.recv(90)
    s.shutdown(1)
    time.sleep(10)
    print s.recv(90)
    time.sleep(10)
    s.send('8888777')
    
    # while (1==1):
    #     print s.recv(90)
    
    
    
  • 相关阅读:
    系列5:序列化与反序列化
    山塞一个PetShop ——源代码下载、安装、配置及体验
    以类为单位的编程思想
    山塞一个PetShop 4.0(01)——最简单的数据库连接
    ASP.NET知识点(二):数据访问层的基础[SQLHelper]
    表格布局规范
    ASP.NET知识点(一):面向接口,工厂模式的程序结构
    ASP.NET的主题
    阅读器关闭时 FieldCount 的尝试无效
    出错信息
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348564.html
Copyright © 2011-2022 走看看