Skip to content

Instantly share code, notes, and snippets.

@ssdemajia
Last active April 9, 2018 02:02
Show Gist options
  • Save ssdemajia/7ae06890ec85ff643bdadfedd55a1d48 to your computer and use it in GitHub Desktop.
Save ssdemajia/7ae06890ec85ff643bdadfedd55a1d48 to your computer and use it in GitHub Desktop.
Python socket编程

udp

首先是udp客户端:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto("lalala".encode("utf-8"),("127.0.0.1",9000))

socket.SOCK_DGRAM表示udp的数据报式通信,socket.AF_INET表示IPv4协议族。sendto是无连接的数据发送函数,在函数中第一个参数表示你的payload, 在python3中需要的是Bytes类型,所以需要将字符串encode编码为bytes,第二个参数是一个元组,分别是地址和端口号。

然后是udp服务端:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("127.0.0.1", 9000))
data, header = s.recvfrom(1000)

服务端需要绑定一个IP地址和一个端口号,然后调用recvfrom接受数据,参数是缓冲区大小,如果客户端传送的数据大于缓冲区大小,则丢弃超过的数据。函数返回接受到的数据和header,header里面是IP地址和端口号。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment