[Pwnable.kr] coins1
练习python的socket编程,玩的游戏是简单的找假硬币的游戏,为了速度快些最好在服务器本地跑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import subprocess from socket import * import sys def request(low, mid): if low == mid: mid = mid + 1 req = " ".join(str(x) for x in range(low, mid)) + "\n" sock.send(req) sock = socket(AF_INET, SOCK_STREAM) sock.connect(("0.0.0.0", 9007)) while True: msg = sock.recv(1024).splitlines() for line in msg: if line.startswith("N="): high = int(line.split(" ")[0].split("=")[1]) + 1 low = 0 mid = (low + high) >> 1 request(low, mid) elif line.isdigit(): if line == "9": request(low, low) continue elif line[-1:] != '0': high = mid else: low = mid mid = (low + high) >> 1 request(low, mid) else: print line |