对 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第三方库


热门话题
尝试运行JFLAP。戴软呢帽的罐子23。Java正在抛出异常   无引用的java数组布尔复制   hibernate如何在java SE应用程序中使用JPA EntityManager   java如何使用ORMLite在SQLite中持久化JavaFX属性?   java无法将项目部署到GAE   java:谷歌地图维基百科层   java Resultset(getter/setter类)对象在第二次执行时未删除旧值   s中的java struts2:选择列表>请求的列表键“”作为集合/数组/映射/枚举/迭代器类型   java如何在Karaf 4.0.5中获得BaseDao中的entityManager?   java VSCode未从控制台读取西里尔文   java字体。createFromAsset()返回字体的空指针异常   java错误:将Android Studio从0.6.1更新到0.8.9后,没有合适的构造函数