UDP协议和TCP协议不同,不需要建立连接(三次握手机制)。只需要输入地址和端口号便可以直接发送。但是PlantSimulation中没有UDP的示例,简单实验了一下以做记录。这里是PlantSimulation端作为服务器,python作为客户端。也可以根据需要互换。
1.PlantSimulation端(服务器)
str:string:="Hello Python"
RealSocket.write("127.0.0.30:30010",Str)--0为服务器端口,str为要发送的字符串
上述代码是发送程序,可以自己新建一个方法运行试一下,callback是plant接收数据时需要,这里可以空着。
2.Python端(客户端)
直接连接服务器就可以了,就这么简单。
def udp_socket(): # 数据可能漏
# 创建一个服务器的套接字基于udp,type=socket.SOCK_DGRAM表示使用udp协议
udp_sk = socket.socket(type=socket.SOCK_DGRAM)
udp_sk.bind(('127.0.0.30', 30010)) # 绑定服务器的ip和端口的套接字
# udp_sk.sendto('hello'.encode('utf-8'), addr) # 发送消息,需写入对方的ip和端口
# udp_sk.close()
return udp_sk
udp_sk = udp_socket() # UDP socket
msg, addr = udp_sk.recvfrom(8192) # 接收的消息 msg表示内容,addr表示ip和端口
event = msg.decode('utf-8')