• 20.5 PUSH标志


    import socket
    import time
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    SEND_BUF_SIZE = 13
    RECV_BUF_SIZE = 17
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.setsockopt( socket.SOL_SOCKET, socket.SO_SNDBUF, SEND_BUF_SIZE)
    s.setsockopt( socket.SOL_SOCKET, socket.SO_RCVBUF, RECV_BUF_SIZE)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
    
    s.connect(("192.168.137.2",8080))
    s.settimeout(10)
    #print s.getsockopt()
    print s.getsockname()
    print s.getpeername()
    #s.sendall("this is shutdown test" + "
    ")
    print dir(socket.herror)
    print(socket.SHUT_RDWR)
    print(socket.SHUT_RD)
    print(socket.SHUT_WR)
    #print s.recv(90)
    s.send('56789')
    print s.recv(900)
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled2/http/t5.py
    17
    13
    ('192.168.137.1', 58374)
    ('192.168.137.2', 8080)
    ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__getitem__', '__getslice__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', 'args', 'errno', 'filename', 'message', 'strerror']
    2
    0
    1
    response:56789
    
    
    
    
    21:25:18.410917 IP 192.168.137.1.58374 > node1.webcache: Flags [P.], seq 1:6, ack 1, win 4, length 5 ##发送
    
    
    21:25:18.411130 IP node1.webcache > 192.168.137.1.58374: Flags [P.], seq 1:15, ack 6, win 23, length 14 ##接收
    
    20.5 PUSH标志
    
    在每一个TCP例子中,我们都看到了PUSH标志,但一直没有介绍它的用途。发送方使用
    
    该标志通知接收方将收到的数据全都提交给接收进程。这里的数据包括与PUSH一起传送的数据
    
    在最初的TCP规范中,一般假定编程接口允许发送进程告诉它的TCP何时设置PUSH标志。
    
    在一个交互程序中,当客户发送一个名称给服务器时,它设置PUSH 标志并停下来等待服务器的响应。
    
    通过允许客户应用程序通知其TCP设置PUSH标志,客户进程通知TCP在向服务器发送一个报文段
    
    时不要因等待额外数据而使已提交数据在缓冲中滞留。
  • 相关阅读:
    PostgreSQL学习的九层宝塔
    MySQL和PostgreSQL在多表连接算法上的差异
    覆盖equals 时总要覆盖hashCode(9)
    覆盖equals 时总要覆盖hashCode(9)
    覆盖equals 时总要覆盖hashCode(9)
    覆盖equals 时总要覆盖hashCode(9)
    SQL Server 字段和对应的说明操作(SQL Server 2005 +)
    SQL Server 字段和对应的说明操作(SQL Server 2005 +)
    SQL Server 字段和对应的说明操作(SQL Server 2005 +)
    SQL Server 字段和对应的说明操作(SQL Server 2005 +)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348546.html
Copyright © 2020-2023  润新知