对 socket 简单的封装
remoteCL的Python项目详细描述
Remote CLI
一个对socket简单的封装
有时候会碰到通过 nc 来交互的 miscs 或者 crypto 题, 于是就想着做个简单的封装吧
省的大佬们手输答案233
Examples
server
defhandle(subsck):cli=remoteCLI.CLI()cli.sck=subsckcli.sendLine("100 rounds test, are you ready?")foriinrange(100):x=random.randint(0,100)y=random.randint(0,100)cli.sendLine(str(x)+' + '+str(y)+' = ?')answer=cli.recvline()print(x,y,answer)ifint(answer)==x+y:ifi==99:cli.sendLine("Congratulations, you got it.")else:cli.sendLine("Oops, better luck next time.")breakcli.sck.close()returnmainsck=socket.socket()mainsck.bind(("127.0.0.1",12345))mainsck.listen()whileTrue:subsck,addr=mainsck.accept()print(str(addr)+"connected")threading.Thread(target=handle,args=(subsck,)).start()
client
cli=remoteCLI.CLI()cli.connect("127.0.0.1",12345)print(cli.recvline())foriinrange(100):paras=cli.recvUntilFind(r"([0-9]{1,}) \+ ([0-9]{1,})")answer=int(paras[0])+int(paras[1])print(i,paras,answer)cli.sendLine(str(answer))cli.console()
output
100 rounds test, are you ready? 0 ['29', '33'] 62
1 ['40', '34'] 74
...
...
99 ['7', '43'] 50
= ?
Congratulations, you got it.
- 项目
标签: