UDP learn by Python3
2021-02-05 09:17
标签:__name__ def sock ipy darwin python false -- put I used the code above to find the max size of a UDP packet size by default configuration. Use the code below to test. We can see that if the UDP learn by Python3 标签:__name__ def sock ipy darwin python false -- put 原文地址:https://www.cnblogs.com/ToRapture/p/12788732.htmlFind max packet size
# coding: utf-8
import socket
def find_max_udp_packet_size():
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
max_sz = 0
l, r = 0, 65535 - 8 - 20
while l
The result on my computer is:$ uname -v
Darwin Kernel Version 19.2.0: Sat Nov 9 03:47:04 PST 2019; root:xnu-6153.61.1~20/RELEASE_X86_64
$ python3 --version
Python 3.6.4
$ python3 udp_packet_size.py
max_sz = 9216
More test
# 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()
In [1]: sock.bind((‘localhost‘, 10001))
In [2]: receiver = (‘localhost‘, 10002)
In [3]: sock.sendto(b‘01234567‘, receiver)
Out[3]: 8
In [4]: sock.sendto(b‘01234567‘, receiver)
Out[4]: 8
In [5]: sock.sendto(b‘01234567‘, receiver)
Out[5]: 8
In [6]: sock.sendto(b‘01234567‘, receiver)
Out[6]: 8
In [1]: sock.bind((‘localhost‘, 10002))
In [2]: receiver = (‘localhost‘, 10001)
In [3]: print(sock.recvfrom(1024))
(b‘01234567‘, (‘127.0.0.1‘, 10001))
In [4]: print(sock.recvfrom(4))
(b‘0123‘, (‘127.0.0.1‘, 10001))
In [5]: print(sock.recvfrom(4))
(b‘0123‘, (‘127.0.0.1‘, 10001))
In [6]: print(sock.recvfrom(4))
(b‘0123‘, (‘127.0.0.1‘, 10001))
In [7]: print(sock.recvfrom(4))
bufsize
is smaller the length of the packet received, will only read bufsize
bytes of the received data, and the rest of that packet will not be returned in subsequent reads.
文章标题:UDP learn by Python3
文章链接:http://soscw.com/index.php/essay/51271.html