网络编程---socket_Udp
基于UDP协议的socket
UDP是无连接的,启动之后可以直接接受消息,不需要提前建立链接,所以服务端和客户端无优先启动的顺序。
server端
# server 端 import socket sk = socket.socket(type = socket.SOCK_DGRAM) sk.bind(('127.0.0.1',8080)) # 服务端必须等待客户端先发送数据过来,无法主动向客户端发送数据 msg,addr = sk.recvfrom(1024) # 接受数据和客户端的地址 print(msg.decode('utf-8')) # 因为传过来的是bytes数据类型,进行编码转译 sk.sendto(bytes('hello',encoding = 'utf-8'),addr) # 服务端回传的信息也需要以bytes数据类型回传,且必须添加addr 这个地址是客户端的地址,若不写,都不知道发给谁 sk.close()
Client端
import socket sk = socket.socket(type = socket.SOCK_DGRAM) ip_post = ('127.0.0.1',8080) # 指向服务端的IP和端口 # 客户端需要发送数据到服务端 sk.sendto(bytes('HI',encoding = 'utf-8'),ip_post) # 客户端需要传送的数据和服务器地址 msg,addr = recvfrom(1024) # 接受服务端返回的数据 print(msg.decode('utf-8')) sk.close()
# udp的server 不需要进行监听也不需要建立连接 # 在启动服务之后 只能被动的等待客户端发送信息过来 # 客户端发送信息的同时,还会自带地址信息 # 消息回复的时候,不仅需要发送信息,还需要把对方的地址回传过去
浙公网安备 33010602011771号