私はPythonでTCPクライアントを作成しています。これは、サーバーに接続して回答するときにサーバーから数学的な問題が発生する必要があります。 私はNetcatを使用してサーバーに接続し、Wiresharkの上でこれを見た: Python TCPclientは認識しません
私は私のコードでそれをやったとき、私は唯一の違いは、サーバーの後に私のコードはdoesnの質問を送ることで、この
を見ましたそれに対するACKはありません。ここで
は私のコードです:
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私はちょうどNetcatで行うのと同じようにTCPでデータを送受信する必要があります。 –