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...
[该文章已设置加密,请点击标题输入密码访问]