Как я могу исправить свой скрипт, чтобы отправить строку через сокет? - PullRequest
0 голосов
/ 14 февраля 2019

В качестве предисловия к моему вопросу я попытался просмотреть похожие вопросы и использовал некоторые из них, чтобы добраться до моего текущего кода, но он все еще не работает для меня.

В настоящее время я использую Herculesотправлять базовые сообщения TCP на активный сервер (это простая программа, которая подключается к IP-порту и позволяет отправлять сообщения).Я добавил заявление для печати в «message» и отправил его с помощью Hercules, чтобы убедиться, что мой формат правильный.Исходя из этого, похоже, что моя проблема в отправке самого сообщения.

В моем CSV-файле есть верхняя строка с IP-адресом и портом.После этого в каждой строке есть данные, необходимые для сообщения.

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

В основном моя цель - открыть сокет, а затем отправить сообщение.Формат строки:

<STX>1000000000^TEST^data1^data2^data3<ETX>

Вот код, с которым мне нужна помощь:

Tk().withdraw()
filename = askopenfilename()

with open(filename) as f:
    csvData = csv.reader(f)
    inputData = list(csvData)
f.close()

ip = inputData[0][0]
port = int(inputData[0][1])

s = socket.socket()
s.connect((ip,port))

inputData = inputData[1:]  #delete first row of CSV input

for i in range(len(inputData)):
    message = ('<STX>' + str(random.randint(1000000000,9999999999)) + '^TEST^'
               + inputData[i][0] + '^' + inputData[i][1] + '^' + inputData[i][2]
               + '<ETX>')
    s.sendall(message.encode('utf-8'))

s.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...