发送数据后的python socket无限循环

时间:2017-04-23 17:39:56

标签: python sockets scripting

我正在进行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()

0 个答案:

没有答案