zoukankan      html  css  js  c++  java
  • UDP and netstat

    Do some experiment about UDP by Python3 and netstat.

    Code

    # coding: utf-8
    
    import socket
    
    from IPython import embed
    
    
    def main():
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        embed()
        sock.close()
    
    
    if __name__ == '__main__':
        main()
    
    

    A and B start

    A:

    $ python3 client.py
    Python 3.5.2 (default, Oct  8 2019, 13:06:37)
    Type "copyright", "credits" or "license" for more information.
    
    IPython 2.4.1 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object', use 'object??' for extra details.
    
    In [1]:
    

    B:

    $ python3 client.py
    Python 3.5.2 (default, Oct  8 2019, 13:06:37)
    Type "copyright", "credits" or "license" for more information.
    
    IPython 2.4.1 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object', use 'object??' for extra details.
    
    In [1]:
    
    $ netstat -au
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    

    A bind

    A:

    In [1]: sock.bind(('localhost', 10001))
    
    $ netstat -au
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    udp        0      0 localhost:10001         *:*
    

    B send to A

    B:

    In [1]: sock.sendto(b'hello world', ('localhost', 10001))
    Out[1]: 11
    

    A:

    In [2]: sock.recvfrom(1024)
    Out[2]: (b'hello world', ('127.0.0.1', 42616))
    
    $ netstat -au
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    udp      768      0 localhost:10001         *:*
    udp        0      0 *:42616                 *:*
    

    A send to B

    A:

    In [3]: sock.sendto(b'This is a response.', ('127.0.0.1', 42616))
    Out[3]: 19
    

    B:

    In [2]: sock.recvfrom(1024)
    Out[2]: (b'This is a response.', ('127.0.0.1', 10001))
    
    $ netstat -au
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    udp        0      0 localhost:10001         *:*
    udp        0      0 *:42616                 *:*
    

    B connect to A

    B:

    In [4]: sock.connect(('127.0.0.1', 10001))
    
    $ netstat -au
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    udp        0      0 localhost:10001         *:*
    udp        0      0 localhost:42616         localhost:10001         ESTABLISHED
    

    A:

    In [4]: sock.sendto(b'This is another response.', ('127.0.0.1', 42616))
    Out[4]: 25
    

    B:

    In [5]: sock.recvfrom(1024)
    Out[5]: (b'This is another response.', ('127.0.0.1', 10001))
    

    C:

    In [1]: sock.bind(('127.0.0.1', 10010))
    
    In [2]: sock.sendto(b'This is a response from C.', ('127.0.0.1', 42616))
    Out[2]: 26
    

    B:

    In [7]: sock.recvfrom(1024)
    blocked
    

    After B connected to A, B will not receive packets from any endpoint other than A.

  • 相关阅读:
    POJ 3268 Silver Cow Party (Dijkstra)
    怒学三算法 POJ 2387 Til the Cows Come Home (Bellman_Ford || Dijkstra || SPFA)
    CF Amr and Music (贪心)
    CF Amr and Pins (数学)
    POJ 3253 Fence Repair (贪心)
    POJ 3069 Saruman's Army(贪心)
    POJ 3617 Best Cow Line (贪心)
    CF Anya and Ghosts (贪心)
    CF Fox And Names (拓扑排序)
    mysql8.0的新特性
  • 原文地址:https://www.cnblogs.com/ToRapture/p/12793410.html
Copyright © 2011-2022 走看看