udp 通讯包含一个服务端和一个客户端。本文介绍2个python 程序,一个客户端udpclient.py,一个服务端 udpserver.py ,然后介绍通讯测试。
udpserver.py 代码:
# -*- coding: utf-8 -*-
"""
Created on Tue Oct 12 17:08:53 2021
@author: zeng_
"""
import socket
localIP = "127.0.0.1"
localPort = 20001
bufferSize = 1024
msgFromServer = "Hello UDP Client"
bytesToSend = str.encode(msgFromServer)
# Create a datagram socket
UDPServerSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
# Bind to address and ip
UDPServerSocket.bind((localIP, localPort))
print("UDP server up and listening")
# Listen for incoming datagrams
while(True):
bytesAddressPair = UDPServerSocket.recvfrom(bufferSize)
message = bytesAddressPair[0]
address = bytesAddressPair[1]
clientMsg = "Message from Client:{}".format(message)
clientIP = "Client IP Address:{}".format(address)
print(clientMsg)
print(clientIP)
# Sending a reply to client
UDPServerSocket.sendto(bytesToSend, address)
udpClient.py 代码:
# -*- coding: utf-8 -*-
"""
Created on Tue Oct 12 17:12:00 2021
@author: zeng_
"""
import socket
msgFromClient = "Hello UDP Server"
bytesToSend = str.encode(msgFromClient)
serverAddressPort = ("127.0.0.1", 20001)
bufferSize = 1024
# Create a UDP socket at client side
UDPClientSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
# Send to server using created UDP socket
UDPClientSocket.sendto(bytesToSend, serverAddressPort)
msgFromServer = UDPClientSocket.recvfrom(bufferSize)
msg = "Message from Server {}".format(msgFromServer[0])
print(msg)
通讯测试,就在本机做测试。我是在spyder 环境下实现的。但是spyder 运行一个实例就不能运行第二个。其实很简单,在菜单Console -> New Console 就可以打开新的console ,运行新的实例。
python - How to open second spyder console when running it as admin? - Stack Overflow 介绍了这个方法。
服务端终端显示如下:
runfile('D:/apython/udp/udpServer.py', wdir='D:/apython/udp')
UDP server up and listening
Message from Client:b'Hello UDP Server'
Client IP Address:('127.0.0.1', 59031)
客户端终端显示如下:
runfile('D:/apython/udp/udpclient.py', wdir='D:/apython/udp')
Message from Server b'Hello UDP Client'
原始的python 代码来自:UDP - Client and Server example programs in Python | Pythontic.com
介绍完毕。



