Я пишу TCP-клиент в python, который должен получить математические проблемы с сервера, когда он подключается к нему и отвечает на них. Я подключен к серверу с Netcat и видел это на Wireshark: Python TCPclient не признает
Когда я сделал это с моим кодом я видел этот
Единственное отличие в том, что после того, как сервер отправляет вопрос мой код Безразлично «АСК к нему.
Вот мой код:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'x.x.x.x'
port = 1337
s.connect((host, port))
while 1:
data = s.recv(1024)
print(data)
splited_data = data.splitlines()
exercise = splited_data[-1].decode("utf-8")
print(exercise)
exercise = splited_data[-1].split()
num1 = int(exercise[0])
arithmetic = exercise[1].decode("utf-8")
num2 = int(exercise[2])
if arithmetic == '+':
answer = num1 + num2
elif arithmetic == '-':
answer = num1 - num2
elif arithmetic == '*':
answer = num1 * num2
elif arithmetic == '/':
answer = num1/num2
elif arithmetic == '%':
answer = num1 % num2
else:
print(arithmetic)
print(answer)
print(str(answer).encode('utf-8'))
s.send(str(answer).encode('utf-8'))
но как это с netcat я могу отправлять и получать сообщения и с моим клиентом python я не могу? AFAIK ACK отправляется автоматически, когда вы делаете socket.recv –
@YonatanKreiner Не зная протокола, который использует сервер, я не могу точно объяснить, как он терпит неудачу. Но это, безусловно, потерпит неудачу, поскольку он вообще не использует протокол. (Можете ли вы добавить сведения о протоколе, который сервер использует для вашего вопроса, чтобы я мог улучшить свой ответ?) –
У меня его нет, его CTF мне просто нужно отправлять и получать данные по TCP, как я делаю с Netcat –