我正在使用通用机器人3仿真软件,并希望通过使用外部python服务器来控制在通用机器人仿真软件中创建的虚拟机器人。我已经修改了通用机器人网站上的代码,以建立客户端服务器连接,但收到一条错误消息,指出
send value from server is not a number
并且在c.send
命令的python控制台中,我得到警告说明
expected bytes instead of str
如果您能看下面的代码并向我提出任何解决错误的方法,我将不胜感激。请随时指出我在使用python和网络连接时在代码中可能发现的任何错误。谢谢大家。
我尝试使用c.send
而不是c.sendall()
,也尝试使用c.send(bytearray[200,50,25])
,但是仍然在客户端,我得到了指出send number is not a number
的错误。请建议我如何解决该错误,以便在建立客户端和服务器之间的通信之后,可以将这三个值发送到通用机器人仿真软件,并可以更改仿真机器人的位置。
import socket
import time
HOST = "192.168.0.100" # The remote host
PORT = 30000 # The same port as used by the server
print ("Starting Program")
count = 0
while (count < 1000):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((HOST, PORT)) # Bind to the port
s.listen(5) # Now wait for client connection.
c, addr = s.accept() # Establish connection with client.
try:
msg = c.recv(1024)
print ("msg")
time.sleep(1)
if msg == "asking_for_data":
count = count + 1
print ("The count is:", count)
time.sleep(0.5)
print ("")
time.sleep(0.5)
c.send("(100,50,25)");
print ("Send 100, 50, 25")
except socket.error as socketerror:
print ("count")
c.close()
s.close()
print ("Program finish")