Python--网络编程-----基于UDP协议的套接字

服务端:

 1 from socket import *
 2 
 3 server = socket(AF_INET, SOCK_DGRAM)
 4 server.bind(('127.0.0.1', 8080))
 5 
 6 while True:
 7     data, client_addr = server.recvfrom(1024)
 8     print(data, client_addr)
 9 
10     server.sendto(data.upper(), client_addr)
11 
12 server.close()

客户端:

 1 from socket import *
 2 
 3 client = socket(AF_INET, SOCK_DGRAM)
 4 
 5 while True:
 6     msg = input(">>:").strip()
 7     client.sendto(msg.encode('utf-8'), ('127.0.0.1', 8080))
 8 
 9     data, server_addr = client.recvfrom(1024)
10     print(data, server_addr)
11 
12 client.close()

先启动服务端,再启动客户端,在客户端输入小写字母abc,

客户端运行结果为:

1 >>:abc
2 b'ABC' ('127.0.0.1', 8080)
3 >>:

服务端运行结果为:

1 b'abc' ('127.0.0.1', 55255)

这就实现了基于udp协议的简单套接字程序

基于udp协议的套接字能够发空:

在客户端输入空,

客户端运行结果为:

1 >>:
2 b'' ('127.0.0.1', 8080)
3 >>:
4 b'' ('127.0.0.1', 8080)
5 >>:

udp就算发送数据为空,但是udp是数据报协议,数据报中还包含有ip端口信息,所以说数据报不为空

猜你喜欢

转载自www.cnblogs.com/xudachen/p/8856359.html