В качестве предисловия к моему вопросу я попытался просмотреть похожие вопросы и использовал некоторые из них, чтобы добраться до моего текущего кода, но он все еще не работает для меня.
В настоящее время я использую 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()