UDP基础程序
Client
import socket
# 1.创建udp对象
sk = socket.socket(type=socket.SOCK_DGRAM) # socket.SOCK_DGRAM表示使用数据报协议。使用该方法创建的套接字可以通过sendto和recvfrom来接受或发送数据
# 2.收发数据的逻辑
# 发送数据
msg = "你喜欢我么~"
# sendto( 二进制字节流 , ip端口号 )
sk.sendto( msg.encode() , ("127.0.0.1",9000) )
# 接受数据
msg , addr = sk.recvfrom(1024)
print(msg.decode())
print(addr)
# 3.关闭连接
sk.close()
Sever
# ### UDP协议 服务端
import socket
# 1.创建udp对象
sk = socket.socket(type=socket.SOCK_DGRAM)
# 2.在网络中注册该主机(绑定ip和端口号)
sk.bind( ("127.0.0.1",9000) )
# 3.收发数据的逻辑
"""udp协议下,默认第一次只能接收数据(没有三次握手,不清楚对方的ip和端口号)"""
# 接受数据
msg , addr = sk.recvfrom(1024)
print(msg.decode())
# 发送数据
sk.sendto( "我喜欢你个锤子".encode() , addr )
# 4.关闭连接
sk.close()
UDP循环发消息
Client
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
while True:
# 发送数据
strvar = input("[客户端]请输入您要发送的内容>>>")
sk.sendto( strvar.encode() , ("127.0.0.1",9000) )
# 接受数据
msg , addr = sk.recvfrom(1024)
print(msg.decode())
sk.close()
Sever
# 在多进程的时候套接字的不同导致单一的Client接受
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.bind( ("127.0.0.1",9000) )
while True:
# 接受数据
msg , addr = sk.recvfrom(1024)
print(msg.decode())
print(addr)
# 发送数据
strvar = input("[服务端]请输入您要发送的内容>>>")
sk.sendto( strvar.encode() , addr)
sk.close()