对 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.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
将文本文件读取到java对象数组   不支持java PageNotFound请求方法“GET”   java JDBC未选择任何数据库   java正在获取ssl。SSLHandshakeException在使用带有标头的REST客户端时发生,但在使用PostMan时可以正常工作   java测试与junit 5的接口   多线程Java Publisher服务器聊天程序   java编译错误已尝试修复,但没有成功   在TIBCO上安装java Https证书   java如何解析一个困难的问题。txt文件?   java如何使用ApachePOI3.6和ApachePOIOXML3读取pptx文件的内容。15罐?   java使用Gradle运行特定于Android的检测测试   人工智能回溯Java   用java制作螺旋桨动画   spring hibernate查询中的java日期   java读取HDFS小型分区?