我正在进行CTF挑战,我需要编写一个可以解决数学问题的机器人。我这样做的方法是在python中使用套接字。我的脚本似乎工作一次,但它不发送或接收任何数据,它一直在听。我尝试在代码中放置打印语句以查看它被卡住的位置,但是在打印出2至3次之后,所有打印件似乎都没有打印出来。
有人可以帮我弄清楚如何让循环永远运行,以便它可以接收和发送数据吗?
我正在使用python 2.7,如果它很重要的话我正在使用debian。
#!/usr/bin/python
import socket, re, time
FLAG = 'FLAG'
BOT = ('IP to server', port)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(BOT)
while 1:
string = ""
while True:
chunk = s.recv(4096)
string += chunk
if len(chunk) < 4096:
break
if len(string) <= 4096:
if string != "":
break
# print "loop 1\n"
# time.sleep(.5)
for line in string.split("\n"):
# print "loop 2\n"
if FLAG in line:
print line
if re.search("([0-9])+", line):
result = eval(line)
print result
s.send(str(result))
# raw_input("enter:")
s.close()