0
私のプログラムでは、socket.socket()を使用してIPアドレスに接続しようとしていますが、接続してモールスコードをキャプチャしてデコードした後、socket.sendall ()。私はIPアドレスに接続してメッセージを解読し、返事を送り返すこともできますが、答えを送り返すと、それは間違っていると言われます。私はもし私が私の答えを送り返しているのであれば、私はそれを何かの周りに追加の引用符を送り返しているのだろうか?どんな助けもありがとう。ソケットを介して私の文字列を送信するの終わりにsocket.sendall()が機能しないのはなぜですか?
import socket
def morse(code):
decoded = []
CODE = [['.-', 'A'],['-...', 'B'],['-.-.', 'C'],['-..', 'D'],['.', 'E'],['..-.', 'F'],['--.', 'G'],['....', 'H'],['..', 'I'],['.---', 'J'],['-.-', 'K'],['.-..', 'L'],['--', 'M'],['-.', 'N'],['---', 'O'],['.--.', 'P'],['--.-', 'Q'],['.-.', 'R'],['...', 'S'],['-', 'T'],['..-', 'U'],['...-', 'V'],['.--', 'W'],['-..-', 'X'],['-.--', 'Y'],['--..', 'A']]
for i in CODE:
if i[0] == code:
decoded.append(i[1].lower())
if code == '':
decoded.append('.')
return decoded
def netcat(hostname, port, content):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((hostname, port))
while 1:
data = s.recv(1024)
if data == "":
break
if "text:" in repr(data):
s.sendall(content)
print("Received:", repr(data))
if "-" in repr(data):
splitMorse = repr(data).split(' ')
splitMorse = splitMorse[8:len(splitMorse)-2]
decoded = []
for i in splitMorse:
decoded.extend(morse(i))
strDecoded = ''.join(decoded)
strDecoded = strDecoded.replace("....................................................", " ")
print("{}\n".format(strDecoded))
#HERE IS WHERE I AM SENDING THE STRING BACK
print(s.sendall("{}\n".format(strDecoded)))
print("Connection closed.")
s.shutdown(socket.SHUT_WR)
s.close()
content = "GET\n"
netcat('146.148.102.236', 24069, content)
それ以外の場合は、私の文字列を受け付けませんし、あなたが入力した後Enterキーを押す必要があるため、それは(永遠にそこに座ってますので、私は「\ n」を追加。ここに私の出力です:
('Received:', "'------------------------------------------\\nWelcome to
The Neverending Crypto!\\nQuick, find Falkor and get through this!\\nThis
is level 1, the Bookstore\\nRound 1. Give me some text:'")
None
('Received:', "'GET encrypted is --. . - \\nWhat is ..-. .-. .- --. -- .
-. - .- - .. --- -. decrypted?\\n:'")
fragmentation
None
('Received:', "'No... I am leaving.\\n'")
Connection closed.