PlantSimulation的socket交互之TCP
1.python的socket TCP客户端建立
其实可以任选python或plantsimulation作为客户端,博主因研究需要,将python设为客户端。plant设为服务器。
1 """ 2 Created on Sat December 14 21:00:00 2021 3 @author: Zhang Litong- Nanjing University of Aeronautics and Astronautics 4 """ 5 6 from socket import * 7 8 host = "127.0.0.1" 9 port = 30000 10 11 client = socket(AF_INET, SOCK_STREAM) 12 13 client.connect((host, port)) 14 while True: 15 str='python_to_plant successful!!' 16 str=str.encode() 17 client.send(str) 18 19 response = client.recv(4096) 20 21 print(response) 22 if response: # 如果接收服务器信息失败,或没有消息回应 23 break 24 client.close()
小伙伴可以根据自己的需要将上述代码转换为函数。
上述代码中 host为服务器地址,127.0.0.1地址段代表本电脑自身的地址。
2.PlantSimulation的socket服务器设置
Plant里需要创建两个方法,socket配置如下图所示,这里我命名为MyServerSocket,记得启用socket。
SentMessage方法示例内容如下:使用时运行此方法!!传输大量数据可以将plant中的表直接转换为string格式,再用write指令发送。
1 var word:string:="Plant_to_python successful" 2 MyServerSocket.write(0,word)--0代表服务器 3 print "finished"
MyCallbackMethod方法示例内容如下:将此方法放到MyServerSocket的回调方法这里。
1 param channelNo: integer, message: string 2 print message
3.运行实验
双方都创建完成之后,运行python就可以观察到,PlantSimulation里的控制台会有python的python_to_plant successful!! 字样,运行Plant的SentMessage方法,会在python输出plant_to_python successful 字样。
标签:plant,socket,python,PlantSimulation,TCP,client From: https://www.cnblogs.com/DarlinHu/p/18440922