TCP-соединение Python через PuTTY

#python #sockets #tcp #putty

Вопрос:

Я работаю над проектом, в котором мне нужно подключить две разные программы на python через TCP/IP. Программа 1 должна считывать данные из txt-файла, а затем пересылать данные в программу 2, которая затем выполнит некоторые задачи с этими данными и вернет результаты в программу 1.

Для этого необходимо использовать TCP — соединение. Я попытался установить соединение с помощью PuTTY (Raw), но я могу подключить только одну из программ, и я действительно не понимаю, как будет установлено соединение между двумя программами.

Код для программы 1 следующий

 import time import tcputils  sError = (0, "ERROR") sInfo = (2, "INFO") sDEBUG = (3, "DEBUG")   def errlog(sev, msg):  if sev[0] lt;= sDEBUG[0]:  print("["   sev[1]   "]: "   str(msg))   def main():  server = tcputils.Server(4533)   while True:  try:  if not server.listening():  server.start()  continue   if not server.got_client():  server.get_connection()  continue   req = server.get_request()  if req is not None:   # reading the .txt  with open("example.txt", "r") as file:  lists = []  for line in file:  lists  = [line.strip()]   # string adjustments  lists = str(lists).split("[", 1)[1]  lists = str(lists).split("]", 1)[0]  str = str(lists).split(",")   # string subdivision into azimuth, elevation and time  i = 0  for i in range(len(pass_str)):  data = str[i].split()  el = data[0].split("'", 1)[1]  az = data[1]  time = data[2].split("'", 1)[0]  i = i   1  server.send_response(f"P {az} {el}n")  print(f"P {az} {el}n")  time.sleep(1)   except Exception as e:  errlog(sError, e)  server.stop()   if __name__ == "__main__":  main()  

Я импортировал tcputils, который является настройкой сервера сокетов и клиента. Обе программы работают с tcputils. Я бы вставил код сюда, но в нем почти 300 строк кода…

Я надеюсь, что кто-нибудь сможет объяснить мне, как работает сервер и клиент, когда вы пытаетесь подключить две разные программы.

Я уже могу установить соединение с Putty, и данные отображаются там. Но я не понимаю, как я заставлю его использоваться другой программой

Комментарии:

1. «Я действительно не понимаю, как будет установлена связь между этими двумя программами». Вам нужно разобраться в этом, прежде чем кто-нибудь сможет вам сильно помочь. TCP — соединение всегда создается ровно между одним сервером (который прослушивает сокет) и одним клиентом (который открывает соединение с сервером). Как только соединение установлено, данные могут передаваться в обоих направлениях. Ваш код здесь-сервер, а Putty-клиент, поэтому вы можете их подключить. Предположительно, вы хотите сделать программу 2 клиентом и подключить ее к программе 1?

2. @RichardAshAudacity Это было действительно полезно, спасибо! Программа 1 теперь является Клиентом, а Программа 2-Сервером. Но когда я пытаюсь их подключить, я получаю сообщение об ошибке, в котором говорится: ожидается str, байт или bytearray, а не нетип » gt; «не поддерживается между экземплярами» int » и «Нетип».

3. Поскольку у вас сейчас другие программы и другая проблема , вам придется опубликовать эти программы (или их части, которые все еще представляют собой полные программы, создающие проблему), возможно, в новом вопросе.

4. Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией для определения адекватного ответа.