0x01接收路径 函数式的路径判断 截取请求路径的扩展功能 0x02 代码 """ 使用socket 搭建一个简单的web服务端 函数进阶版 """ import time import socket sk = socket.socket() sk.bind(('127.0.0.1', 8080)) sk.listen() def yingying(url): data = 'ni fang wen de shi: {}'.format(url) return bytes(data, encoding='utf8') ...

阅读全文>>

0x01 需求 功能说明: 监听9090端口 解析html文件 支持http协议 0x02 代码实现 import socket sk = socket.socket() sk.bind(("127.0.0.1",9090)) sk.listen() #sk.accept() while True: conn,addr = sk.accept() data = conn.recv(1024) print(data) #http协议输出 ...

阅读全文>>

0x01 server import select import socket sk = socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen() del_l = [] rlist = [sk]# 是用来让select帮忙监听的 所有 接口 # select:windows/linux是监听事件有没有数据到来 # poll: linux 也可以做select的工作 # epoll: linux 也可以做类似的工作 while 1: r,w,x = select.select(rlist,[]...

阅读全文>>

0x01 服务端 import socket sk = socket.socket() sk.setblocking(False) sk.bind(('127.0.0.1',8080)) sk.listen() l = [] del_l = [] while 1: try: conn,addr = sk.accept()# 如果是阻塞IO模型,在这里程序会一直等待。 l.append(conn)# 将每个请求连接的客户端的conn添加到列表中 except BlockingIOError: for...

阅读全文>>

0x01代码 from bs4 import BeautifulSoup import requests import time import re from multiprocessing import Process headers = { 'user-agent':'Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/61.0' } def get_url(url): res = requests.get(url) if res.status_code == 200: ...

阅读全文>>

0x01 PyCharm安装包的方法 引入图片 0x02 命令行安装 无法在pycharm中指定源 关键命令 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple bs4 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests 测试有效

阅读全文>>

项目源码: MarkDown-for-Emlog 吐槽 后台的编辑器使用起来一直不怎么舒服,今天百度了下,发现有大牛更新了这个博客的编辑器,刚刚在后台换上,试试markdown的语法功能 作者博客:岁寒 很感谢开源分享 源码测试 import os print("hello world") echo "HelloWorld"; void main(){ printf("HelloWorld") } 图片测试 表格测试 ...

阅读全文>>

主要依赖的是 subprocess模块 Server端: import socket import subprocess sk = socket.socket() sk.bind(("127.0.0.1",10050)) sk.listen() conn,addr = sk.accept() while True: if getattr(conn,'_closed'): conn, addr = sk.accept() # 获取接收到的命令 exec_cmd = conn.recv(10...

阅读全文>>

主要是针对拆包的negal算法和合包的数据获取导致的问题 sever端: import socket import json import struct sk = socket.socket() sk.bind(("127.0.0.1",8001)) sk.listen() conn,addr = sk.accept() b_len_dic = conn.recv(4) len_dic = struct.unpack('i',b_len_dic)[0]# 获取到int类型字典的长度, # unpack得到的是一个元组,要取下标为0的位置 ...

阅读全文>>

0x01 思路 使用tcp协议传输文件 json解析二进制的时候,有问题, 不建议使用,推荐 pickle 0x02 代码 服务器端 # 测试文件服务器 # 实现文件的上传和下载 import socket import os import json import pickle sk = socket.socket() sk.bind(("127.0.0.1",10051)) sk.listen() #等待连接 conn,addr = sk.accept() while...

阅读全文>>

可以对比下tcp 服务端: #udp测试 import socket sk = socket.socket(type = socket.SOCK_DGRAM) sk.bind(("127.0.0.1",10050)) # 收发 while 1: msg_str,addr = sk.recvfrom(1024) print("客户端:",msg_str.decode("utf-8"),addr) msg_s = input(">>>") sk.sendto(msg_s.encode("ut...

阅读全文>>

服务端: #聊天室测试 import socket import time sk = socket.socket() sk.bind(('192.168.3.12',30031)) sk.listen() conn, addr = sk.accept() #客户端永远开启 while True: if getattr(conn,'_closed'): print("走了一个哥们") conn, addr = sk.accept() print("新来人了!!") msg_b...

阅读全文>>

0x01 清晰的回忆 刚哄完宝宝睡觉, 在研究python的logging的处理方式, 突然想起了一个词语, 寓言. 回忆起了小学时候的几件事情,很清晰的回忆. 0x02 寓言 那应该是小学三年级的时候, 我姨妈是我语文老师, 那时候我上语文课都异常的积极, 特别喜欢表现自己. 她有次上课提问, 寓言的寓是什么意思, 我想都没想就举手了, 干脆利落的回答一个字:"蠢" 的意思, 姨妈的表情怪怪的, 小时候我很天真,现在想想, 多想回到那时候天真的自己啊! 前几年, 姨妈过世了. 现在还能记起她以前的样子, 岁月如梭, 很多事只存在回忆里了. ...

阅读全文>>

import re from urllib.request import urlopen, Request def getPage(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'} ret = Request(url, headers=headers) res = urlopen(ret) return...

阅读全文>>