Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 发送第二条TCP消息不需要';无法在服务器端识别/无反应,netcat工作正常_Python_Python 3.x_Sockets_Tcp_Connection - Fatal编程技术网

Python 发送第二条TCP消息不需要';无法在服务器端识别/无反应,netcat工作正常

Python 发送第二条TCP消息不需要';无法在服务器端识别/无反应,netcat工作正常,python,python-3.x,sockets,tcp,connection,Python,Python 3.x,Sockets,Tcp,Connection,这是一项CTF准备任务,可在上找到 任务是计算所有偶数之和——所有非偶数之和 我解决了这个问题,但是当将应答消息发送到服务器时,它不会响应标志 但使用nc rkchals.fluxfingers.net 5002,可以发送第二条消息。 我的代码: import socket import re #connection establishing s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("rkchals.fluxf

这是一项CTF准备任务,可在上找到

任务是计算所有偶数之和——所有非偶数之和

我解决了这个问题,但是当将应答消息发送到服务器时,它不会响应标志

但使用nc rkchals.fluxfingers.net 5002,可以发送第二条消息。 我的代码:

import socket
import re

#connection establishing
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("rkchals.fluxfingers.net",5002))
message = str(s.recv(3000))

#data processing
numbers= re.findall("\d+",message)
uneven_numbers=list()
even_numbers = list()
for i in numbers:
 if(int(i)%2==0):        
     even_numbers.append(int(i))
 else:        
     uneven_numbers.append(int(i))
answer = sum(even_numbers)-sum(uneven_numbers)

#log
print("server says: " + message + "\n")
print("numberarray is: " + str(numbers) + "\n")
print("even numbers are: " + str(even_numbers) + "\n")
print("odd numbers are: " + str(uneven_numbers) + "\n")
print("sum of even - sum of odd: " + str(answer) + "\n")

#sending the answer as string to get the flag
s.sendall(bytes(str(answer),"utf-8"))
print("flag is: " + str(s.recv(1024)))
最后,当我发送应答时,服务器会忽略它(?),因为最后一个命令应该给我该标志作为先前发送应答的结果

我应该更改什么以便服务器可以接收我的第二条消息

我试过: 超时(?)


我缺乏知识,在这里找不到答案。

因为服务器应用程序需要输入,我只是在代码中添加了以下内容:

s.sendall(bytes(str(answer) + "\n","utf-8"))
然后,服务器会使用该标志正常响应