Servidor
import socket
# socket.AF_INET (IPV4)
# socket.SOCK_STREAM (TCP)
# socket.SOCK_DGRAM (udp)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 监听 IP:port
host_name = socket.gethostname()
host = socket.gethostbyname(host_name)
print(host)
s.bind((host, 8008))
# 循环 每次有新的连接触发
while True:
# 无连接
# tcp 需要连接、获取一个可读写的 "流"
# udp 无连接、直接接受数据包
# 请求处理
# data 当前数据包
# addr 当前连接ip:port
data, addr = s.recvfrom(1024)
# 响应处理
s.sendto(data, addr)
Cliente
# UDP 的用法和 TCP 类似,只是 UDP 是 无连接的,比 TCP 省略了一个步骤。
import socket
host_name = socket.gethostname()
host = socket.gethostbyname(host_name)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 无连接
# 请求 | 发送数据到服务端
s.sendto(b'hello', (host, 8008))
# 响应 | 接受服务端返回到数据
data = s.recv(1024).decode('utf-8')
print(data) # hello
# 关闭 socket
s.close()