• 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)
    
    
    
  • 相关阅读:
    Keras如何构造简单的CNN网络
    到底该如何入门Keras、Theano呢?(浅谈)
    PyCharm使用技巧记录(一)如何查看变量
    使用 环境变量 来配置批量配置apache
    QT静态链接
    NTP服务器
    debian添加sudo
    龙芯8089_D安装debian 8 iessie
    verilog 双向IO实现
    FPGA入门学习第一课:二分频器
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348564.html
Copyright © 2020-2023  润新知