Как создать соединение udp с сервером Python и универсальным программным обеспечением для моделирования роботов в качестве клиента? - PullRequest
0 голосов
/ 25 января 2019

Я работаю с программным обеспечением для моделирования универсального робота 3 и хочу управлять виртуальным роботом, созданным в программном обеспечении для моделирования универсального робота, с помощью внешнего сервера Python. Я изменил код с веб-сайта универсального робота для установления соединения клиент-сервер, но получаю сообщение об ошибке, в котором говорится, что

send value from server is not a number

и в консоли python для команды c.send я получаю предупреждение с указанием

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")
...