加载中...

UDP基本语法

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()
posted @ 2024-03-20 11:18  江寒雨  阅读(123)  评论(0)    收藏  举报