论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
IOT
[25480] 2016-09-13_从零构建一个简单的Python框架
文档创建者:
s7ckTeam
浏览次数:
2
最后更新:
2025-01-19
IOT
2 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-54
6万
主题
-6万
回帖
-54
积分
管理员
积分
-54
发消息
2016-09-13_从零构建一个简单的Python框架
从
零
构
建
一
个
简
单
的
P
y
t
h
o
n
框
架
原
创
译
者
:
C
a
t
h
o
n
L
i
n
u
x
中
国
2
0
1
6
-
0
9
-
1
3
为
什
么
你
想
要
自
己
构
建
一
个
w
e
b
框
架
呢
?
我
想
,
原
因
有
以
下
几
点
:
你
有
一
个
新
奇
的
想
法
,
觉
得
将
会
取
代
其
他
的
框
架
你
想
要
获
得
一
些
名
气
你
遇
到
的
问
题
很
独
特
,
以
至
于
现
有
的
框
架
不
太
合
适
你
对
w
e
b
框
架
是
如
何
工
作
的
很
感
兴
趣
,
因
为
你
想
要
成
为
一
位
更
好
的
w
e
b
开
发
者
。
接
下
来
的
笔
墨
将
着
重
于
最
后
一
点
。
这
篇
文
章
旨
在
通
过
对
设
计
和
实
现
过
程
一
步
一
步
的
阐
述
告
诉
读
者
,
我
在
完
成
一
个
小
型
的
服
务
器
和
框
架
之
后
学
到
了
什
么
。
你
可
以
在
这
个
代
码
仓
库
[
1
]
中
找
到
这
个
项
目
的
完
整
代
码
。
我
希
望
这
篇
文
章
可
以
鼓
励
更
多
的
人
来
尝
试
,
因
为
这
确
实
很
有
趣
。
它
让
我
知
道
了
w
e
b
应
用
是
如
何
工
作
的
,
而
且
这
比
我
想
的
要
容
易
的
多
!
范
围
范
围
框
架
可
以
处
理
请
求
-
响
应
周
期
、
身
份
认
证
、
数
据
库
访
问
、
模
板
生
成
等
部
分
工
作
。
W
e
b
开
发
者
使
用
框
架
是
因
为
,
大
多
数
的
w
e
b
应
用
拥
有
大
量
相
同
的
功
能
,
而
对
每
个
项
目
都
重
新
实
现
同
样
的
功
能
意
义
不
大
。
比
较
大
的
的
框
架
如
R
a
i
l
s
和
D
j
a
n
g
o
实
现
了
高
层
次
的
抽
象
,
或
者
说
“
自
备
电
池
”
(
“
b
a
t
t
e
r
i
e
s
-
i
n
c
l
u
d
e
d
”
,
这
是
P
y
t
h
o
n
的
口
号
之
一
,
意
即
所
有
功
能
都
自
足
。
)
。
而
实
现
所
有
的
这
些
功
能
可
能
要
花
费
数
千
小
时
,
因
此
在
这
个
项
目
上
,
我
们
重
点
完
成
其
中
的
一
小
部
分
。
在
开
始
写
代
码
前
,
我
先
列
举
一
下
所
需
的
功
能
以
及
限
制
。
功
能
:
处
理
H
T
T
P
的
G
E
T
和
P
O
S
T
请
求
。
你
可
以
在
这
篇
w
i
k
i
[
2
]
中
对
H
T
T
P
有
个
大
致
的
了
解
。
实
现
异
步
操
作
(
我
喜
欢
P
y
t
h
o
n
3
的
a
s
y
n
c
i
o
模
块
)
。
简
单
的
路
由
逻
辑
以
及
参
数
撷
取
。
像
其
他
微
型
框
架
一
样
,
提
供
一
个
简
单
的
用
户
级
A
P
I
。
支
持
身
份
认
证
,
因
为
学
会
这
个
很
酷
啊
(
微
笑
)
。
限
制
:
将
只
支
持
H
T
T
P
1
.
1
的
一
个
小
子
集
,
不
支
持
t
r
a
n
s
f
e
r
-
e
n
c
o
d
i
n
g
传
输
编
码
、
h
t
t
p
-
a
u
t
h
H
T
T
P
认
证
、
c
o
n
t
e
n
t
-
e
n
c
o
d
i
n
g
内
容
编
码
(
如
g
z
i
p
)
以
及
持
久
化
连
接
[
3
]
等
功
能
。
不
支
持
对
响
应
内
容
的
M
I
M
E
判
断
-
用
户
需
要
手
动
指
定
。
不
支
持
W
S
G
I
-
仅
能
处
理
简
单
的
T
C
P
连
接
。
不
支
持
数
据
库
。
我
觉
得
一
个
小
的
用
例
可
以
让
上
述
内
容
更
加
具
体
,
也
可
以
用
来
演
示
这
个
框
架
的
A
P
I
:
3
.
4
.
1
1
.
1
2
.
1
6
.
1
.
f
r
o
m
d
i
y
_
f
r
a
m
e
w
o
r
k
i
m
p
o
r
t
A
p
p
,
R
o
u
t
e
r
2
.
f
r
o
m
d
i
y
_
f
r
a
m
e
w
o
r
k
.
h
t
t
p
_
u
t
i
l
s
i
m
p
o
r
t
R
e
s
p
o
n
s
e
5
.
#
G
E
T
s
i
m
p
l
e
r
o
u
t
e
6
.
a
s
y
n
c
d
e
f
h
o
m
e
(
r
)
:
7
.
r
s
p
=
R
e
s
p
o
n
s
e
(
)
8
.
r
s
p
.
s
e
t
_
h
e
a
d
e
r
(
'
C
o
n
t
e
n
t
-
T
y
p
e
'
,
'
t
e
x
t
/
h
t
m
l
'
)
9
.
r
s
p
.
b
o
d
y
=
'
<
h
t
m
l
>
<
b
o
d
y
>
<
b
>
t
e
s
t
<
/
b
>
<
/
b
o
d
y
>
<
/
h
t
m
l
>
'
1
0
.
r
e
t
u
r
n
r
s
p
1
3
.
#
G
E
T
r
o
u
t
e
+
p
a
r
a
m
s
1
4
.
a
s
y
n
c
d
e
f
w
e
l
c
o
m
e
(
r
,
n
a
m
e
)
:
1
5
.
r
e
t
u
r
n
"
W
e
l
c
o
m
e
{
}
"
.
f
o
r
m
a
t
(
n
a
m
e
)
1
7
.
#
P
O
S
T
r
o
u
t
e
+
b
o
d
y
p
a
r
a
m
1
8
.
a
s
y
n
c
d
e
f
p
a
r
s
e
_
f
o
r
m
(
r
)
:
1
9
.
i
f
r
.
m
e
t
h
o
d
=
=
'
G
E
T
'
:
2
0
.
r
e
t
u
r
n
'
f
o
r
m
'
2
4
.
2
6
.
3
3
.
'
用
户
需
要
定
义
一
些
能
够
返
回
字
符
串
或
对
象
的
异
步
函
数
,
然
后
将
这
些
函
数
与
表
示
路
由
的
字
符
串
配
对
,
最
后
通
过
一
个
函
数
调
用
(
)
开
始
处
理
请
求
。
完
成
设
计
之
后
,
我
将
它
抽
象
为
几
个
我
需
要
编
码
的
部
分
:
接
受
T
C
P
连
接
以
及
调
度
一
个
异
步
函
数
来
处
理
这
些
连
接
的
部
分
将
原
始
文
本
解
析
成
某
种
抽
象
容
器
的
部
分
对
于
每
个
请
求
,
用
来
决
定
调
用
哪
个
函
数
的
部
分
将
上
述
部
分
集
中
到
一
起
,
并
为
开
发
者
提
供
一
个
简
单
接
口
的
部
分
我
先
编
写
一
些
测
试
,
这
些
测
试
被
用
来
描
述
每
个
部
分
的
功
能
。
几
次
重
构
后
,
整
个
设
计
被
分
成
若
干
部
分
,
每
个
部
分
之
间
是
相
对
解
耦
的
。
这
样
就
非
常
好
,
因
为
每
个
部
分
可
以
被
独
立
地
研
究
学
习
。
以
下
是
我
上
文
列
出
的
抽
象
的
具
体
体
现
:
一
个
H
T
T
P
S
e
r
v
e
r
对
象
,
需
要
一
个
R
o
u
t
e
r
对
象
和
一
个
h
t
t
p
_
p
a
r
s
e
r
模
块
,
并
使
用
它
们
来
初
始
化
。
H
T
T
P
C
o
n
n
e
c
t
i
o
n
对
象
,
每
一
个
对
象
表
示
一
个
单
独
的
客
户
端
H
T
T
P
连
接
,
并
且
处
理
其
请
求
-
响
应
周
期
:
使
用
h
t
t
p
_
p
a
r
s
e
r
模
块
将
收
到
的
字
节
流
解
析
为
一
个
R
e
q
u
e
s
t
对
象
;
使
用
一
个
R
o
u
t
e
r
实
例
寻
找
并
调
用
正
确
的
函
数
来
生
成
一
个
响
应
;
最
后
将
这
个
响
应
发
送
回
客
户
端
。
一
对
R
e
q
u
e
s
t
和
R
e
s
p
o
n
s
e
对
象
为
用
户
提
供
了
一
种
友
好
的
方
式
,
来
处
理
实
质
上
是
字
节
流
的
字
符
串
。
用
户
不
需
要
知
道
正
确
的
消
息
格
式
和
分
隔
符
是
怎
样
的
。
一
个
包
含
“
路
由
:
函
数
”
对
应
关
系
的
R
o
u
t
e
r
对
象
。
它
提
供
一
个
添
加
配
对
的
方
法
,
可
以
根
据
U
R
L
路
径
查
找
到
相
应
的
函
数
。
最
后
,
一
个
A
p
p
对
象
。
它
包
含
配
置
信
息
,
并
使
用
它
们
实
例
化
一
个
H
T
T
P
S
e
r
v
e
r
实
例
。
r
e
t
u
r
n
'
f
o
r
m
'
2
1
.
e
l
s
e
:
2
2
.
n
a
m
e
=
r
.
b
o
d
y
.
g
e
t
(
'
n
a
m
e
'
,
'
'
)
[
0
]
2
3
.
p
a
s
s
w
o
r
d
=
r
.
b
o
d
y
.
g
e
t
(
'
p
a
s
s
w
o
r
d
'
,
'
'
)
[
0
]
2
5
.
r
e
t
u
r
n
"
{
0
}
:
{
1
}
"
.
f
o
r
m
a
t
(
n
a
m
e
,
p
a
s
s
w
o
r
d
)
2
7
.
#
a
p
p
l
i
c
a
t
i
o
n
=
r
o
u
t
e
r
+
h
t
t
p
s
e
r
v
e
r
2
8
.
r
o
u
t
e
r
=
R
o
u
t
e
r
(
)
2
9
.
r
o
u
t
e
r
.
a
d
d
_
r
o
u
t
e
s
(
{
3
0
.
r
'
/
w
e
l
c
o
m
e
/
{
n
a
m
e
}
'
:
w
e
l
c
o
m
e
,
3
1
.
r
'
/
'
:
h
o
m
e
,
3
2
.
r
'
/
l
o
g
i
n
'
:
p
a
r
s
e
_
f
o
r
m
,
}
)
3
4
.
a
p
p
=
A
p
p
(
r
o
u
t
e
r
)
3
5
.
a
p
p
.
s
t
a
r
t
_
s
e
r
v
e
r
(
)
R
e
s
p
o
n
s
e
s
t
a
r
t
_
s
e
r
v
e
r
让
我
们
从
开
始
来
讲
解
各
个
部
分
。
模
拟
异
步
连
接
模
拟
异
步
连
接
为
了
满
足
上
述
约
束
条
件
,
每
一
个
H
T
T
P
请
求
都
是
一
个
单
独
的
T
C
P
连
接
。
这
使
得
处
理
请
求
的
速
度
变
慢
了
,
因
为
建
立
多
个
T
C
P
连
接
需
要
相
对
高
的
花
销
(
D
N
S
查
询
,
T
C
P
三
次
握
手
,
慢
启
动
[
4
]
等
等
的
花
销
)
,
不
过
这
样
更
加
容
易
模
拟
。
对
于
这
一
任
务
,
我
选
择
相
对
高
级
的
a
s
y
n
c
i
o
-
s
t
r
e
a
m
[
5
]
模
块
,
它
建
立
在
a
s
y
n
c
i
o
的
传
输
和
协
议
[
6
]
的
基
础
之
上
。
我
强
烈
推
荐
你
读
一
读
标
准
库
中
的
相
应
代
码
,
很
有
意
思
!
中
。
的
实
例
能
够
处
理
多
个
任
务
。
首
先
,
它
使
用
对
象
以
增
量
的
方
式
从
T
C
P
连
接
中
读
取
数
据
,
并
存
储
在
缓
存
中
。
每
一
个
读
取
操
作
完
成
后
,
它
会
尝
试
解
析
缓
存
中
的
数
据
,
并
生
成
一
个
对
象
。
一
旦
收
到
了
这
个
完
整
的
请
求
,
它
就
生
成
一
个
回
复
,
并
通
过
对
象
发
送
回
客
户
端
。
当
然
,
它
还
有
两
个
任
务
:
超
时
连
接
以
及
错
误
处
理
。
你
可
以
在
这
里
[
7
]
浏
览
这
个
类
的
完
整
代
码
。
我
将
分
别
介
绍
代
码
的
每
一
部
分
。
为
了
简
单
起
见
,
我
移
除
了
代
码
文
档
。
6
.
这
个
方
法
没
啥
意
思
,
它
仅
仅
是
收
集
了
一
些
对
象
以
供
后
面
使
用
。
它
存
储
了
一
个
对
象
、
一
个
对
象
以
及
H
T
T
P
C
o
n
n
e
c
t
i
o
n
H
T
T
P
C
o
n
n
e
c
t
i
o
n
a
s
y
n
c
i
o
.
S
t
r
e
a
m
R
e
a
d
e
r
R
e
q
u
e
s
t
a
s
y
n
c
i
o
.
S
t
r
e
a
m
W
r
i
t
e
r
1
.
c
l
a
s
s
H
T
T
P
C
o
n
n
e
c
t
i
o
n
(
o
b
j
e
c
t
)
:
2
.
d
e
f
i
n
i
t
(
s
e
l
f
,
h
t
t
p
_
s
e
r
v
e
r
,
r
e
a
d
e
r
,
w
r
i
t
e
r
)
:
3
.
s
e
l
f
.
r
o
u
t
e
r
=
h
t
t
p
_
s
e
r
v
e
r
.
r
o
u
t
e
r
4
.
s
e
l
f
.
h
t
t
p
_
p
a
r
s
e
r
=
h
t
t
p
_
s
e
r
v
e
r
.
h
t
t
p
_
p
a
r
s
e
r
5
.
s
e
l
f
.
l
o
o
p
=
h
t
t
p
_
s
e
r
v
e
r
.
l
o
o
p
7
.
s
e
l
f
.
_
r
e
a
d
e
r
=
r
e
a
d
e
r
8
.
s
e
l
f
.
_
w
r
i
t
e
r
=
w
r
i
t
e
r
9
.
s
e
l
f
.
_
b
u
f
f
e
r
=
b
y
t
e
a
r
r
a
y
(
)
1
0
.
s
e
l
f
.
_
c
o
n
n
_
t
i
m
e
o
u
t
=
N
o
n
e
1
1
.
s
e
l
f
.
r
e
q
u
e
s
t
=
R
e
q
u
e
s
t
(
)
i
n
i
t
r
o
u
t
e
r
h
t
t
p
_
p
a
r
s
e
r
对
象
,
分
别
用
来
生
成
响
应
、
解
析
请
求
以
及
在
事
件
循
环
中
调
度
任
务
。
然
后
,
它
存
储
了
代
表
一
个
T
C
P
连
接
的
读
写
对
,
和
一
个
充
当
原
始
字
节
缓
冲
区
的
空
字
节
数
组
[
8
]
。
存
储
了
一
个
a
s
y
n
c
i
o
.
H
a
n
d
l
e
[
9
]
的
实
例
,
用
来
管
理
超
时
逻
辑
。
最
后
,
它
还
存
储
了
对
象
的
一
个
单
一
实
例
。
下
面
的
代
码
是
用
来
接
受
和
发
送
数
据
的
核
心
功
能
:
1
7
.
所
有
内
容
被
包
含
在
代
码
块
中
,
这
样
在
解
析
请
求
或
响
应
期
间
抛
出
的
异
常
可
以
被
捕
获
到
,
然
后
一
个
错
误
响
应
会
发
送
回
客
户
端
。
在
循
环
中
不
断
读
取
请
求
,
直
到
解
析
器
将
l
o
o
p
_
c
o
n
n
_
t
i
m
e
o
u
t
R
e
q
u
e
s
t
1
.
a
s
y
n
c
d
e
f
h
a
n
d
l
e
_
r
e
q
u
e
s
t
(
s
e
l
f
)
:
2
.
t
r
y
:
3
.
w
h
i
l
e
n
o
t
s
e
l
f
.
r
e
q
u
e
s
t
.
f
i
n
i
s
h
e
d
a
n
d
n
o
t
s
e
l
f
.
_
r
e
a
d
e
r
.
a
t
_
e
o
f
(
)
:
4
.
d
a
t
a
=
a
w
a
i
t
s
e
l
f
.
_
r
e
a
d
e
r
.
r
e
a
d
(
1
0
2
4
)
5
.
i
f
d
a
t
a
:
6
.
s
e
l
f
.
_
r
e
s
e
t
_
c
o
n
n
_
t
i
m
e
o
u
t
(
)
7
.
a
w
a
i
t
s
e
l
f
.
p
r
o
c
e
s
s
_
d
a
t
a
(
d
a
t
a
)
8
.
i
f
s
e
l
f
.
r
e
q
u
e
s
t
.
f
i
n
i
s
h
e
d
:
9
.
a
w
a
i
t
s
e
l
f
.
r
e
p
l
y
(
)
1
0
.
e
l
i
f
s
e
l
f
.
_
r
e
a
d
e
r
.
a
t
_
e
o
f
(
)
:
1
1
.
r
a
i
s
e
B
a
d
R
e
q
u
e
s
t
E
x
c
e
p
t
i
o
n
(
)
1
2
.
e
x
c
e
p
t
(
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
,
1
3
.
B
a
d
R
e
q
u
e
s
t
E
x
c
e
p
t
i
o
n
)
a
s
e
:
1
4
.
s
e
l
f
.
e
r
r
o
r
_
r
e
p
l
y
(
e
.
c
o
d
e
,
b
o
d
y
=
R
e
s
p
o
n
s
e
.
r
e
a
s
o
n
_
p
h
r
a
s
e
s
[
e
.
c
o
d
e
]
)
1
5
.
e
x
c
e
p
t
E
x
c
e
p
t
i
o
n
a
s
e
:
1
6
.
s
e
l
f
.
e
r
r
o
r
_
r
e
p
l
y
(
5
0
0
,
b
o
d
y
=
R
e
s
p
o
n
s
e
.
r
e
a
s
o
n
_
p
h
r
a
s
e
s
[
5
0
0
]
)
1
8
.
s
e
l
f
.
c
l
o
s
e
_
c
o
n
n
e
c
t
i
o
n
(
)
t
r
y
-
e
x
c
e
p
t
w
h
i
l
e
s
e
l
f
.
r
e
q
u
e
s
t
.
f
i
n
i
s
h
e
d
设
置
为
T
r
u
e
,
或
者
客
户
端
关
闭
连
接
所
触
发
的
信
号
使
得
函
数
返
回
值
为
T
r
u
e
为
止
。
这
段
代
码
尝
试
在
每
次
循
环
迭
代
中
从
中
读
取
数
据
,
并
通
过
调
用
函
数
以
增
量
方
式
生
成
。
每
次
循
环
读
取
数
据
时
,
连
接
超
时
计
数
器
被
重
置
。
这
儿
有
个
错
误
,
你
发
现
了
吗
?
稍
后
我
们
会
再
讨
论
这
个
。
需
要
注
意
的
是
,
这
个
循
环
可
能
会
耗
尽
C
P
U
资
源
,
因
为
如
果
没
有
读
取
到
东
西
函
数
将
会
返
回
一
个
空
的
字
节
对
象
。
这
就
意
味
着
循
环
将
会
不
断
运
行
,
却
什
么
也
不
做
。
一
个
可
能
的
解
决
方
法
是
,
用
非
阻
塞
的
方
式
等
待
一
小
段
时
间
:
。
我
们
暂
且
不
对
它
做
优
化
。
还
记
得
上
一
段
我
提
到
的
那
个
错
误
吗
?
只
有
从
读
取
数
据
时
,
函
数
才
会
被
调
用
。
这
就
意
味
着
,
直
到
第
一
个
字
节
到
达
时
直
到
第
一
个
字
节
到
达
时
,
才
被
初
始
化
。
如
果
有
一
个
客
户
端
建
立
了
与
服
务
器
的
连
接
却
不
发
送
任
何
数
据
,
那
就
永
远
不
会
超
时
。
这
可
能
被
用
来
消
耗
系
统
资
源
,
从
而
导
致
拒
绝
服
务
式
攻
击
(
D
o
S
)
。
修
复
方
法
就
是
在
函
数
中
调
用
函
数
。
当
请
求
接
受
完
成
或
连
接
中
断
时
,
程
序
将
运
行
到
代
码
块
。
这
部
分
代
码
会
判
断
解
析
器
收
到
完
整
的
数
据
后
是
否
完
成
了
解
析
。
如
果
是
,
好
,
生
成
一
个
回
复
并
发
送
回
客
户
端
。
如
果
不
是
,
那
么
请
求
信
息
可
能
有
错
误
,
抛
出
一
个
异
常
!
最
后
,
我
们
调
用
执
行
清
理
工
作
。
解
析
请
求
的
部
分
在
方
法
中
。
这
个
方
法
非
常
简
短
,
也
易
于
测
试
:
3
.
s
e
l
f
.
r
e
q
u
e
s
t
.
f
i
n
i
s
h
e
d
s
e
l
f
.
_
r
e
a
d
e
r
_
a
t
_
e
o
f
(
)
S
t
r
e
a
m
R
e
a
d
e
r
s
e
l
f
.
p
r
o
c
e
s
s
_
d
a
t
a
(
d
a
t
a
)
s
e
l
f
.
r
e
q
u
e
s
t
s
e
l
f
.
_
r
e
a
d
e
r
.
r
e
a
d
(
)
b
'
'
a
w
a
i
t
a
s
y
n
c
i
o
.
s
l
e
e
p
(
0
.
1
)
S
t
r
e
a
m
R
e
a
d
e
r
s
e
l
f
.
_
r
e
s
e
t
_
c
o
n
n
_
t
i
m
e
o
u
t
(
)
t
i
m
e
o
u
t
i
n
i
t
s
e
l
f
.
_
r
e
s
e
t
_
c
o
n
n
_
t
i
m
e
o
u
t
(
)
i
f
-
e
l
s
e
s
e
l
f
.
c
l
o
s
e
_
c
o
n
n
e
c
t
i
o
n
s
e
l
f
.
p
r
o
c
e
s
s
_
d
a
t
a
1
.
a
s
y
n
c
d
e
f
p
r
o
c
e
s
s
_
d
a
t
a
(
s
e
l
f
,
d
a
t
a
)
:
2
.
s
e
l
f
.
_
b
u
f
f
e
r
.
e
x
t
e
n
d
(
d
a
t
a
)
4
.
s
e
l
f
.
_
b
u
f
f
e
r
=
s
e
l
f
.
h
t
t
p
_
p
a
r
s
e
r
.
p
a
r
s
e
_
i
n
t
o
(
每
一
次
调
用
都
将
数
据
累
积
到
中
,
然
后
试
着
用
来
解
析
已
经
收
集
的
数
据
。
这
里
需
要
指
出
的
是
,
这
段
代
码
展
示
了
一
种
称
为
依
赖
注
入
(
D
e
p
e
n
d
e
n
c
y
I
n
j
e
c
t
i
o
n
)
[
1
0
]
的
模
式
。
如
果
你
还
记
得
函
数
的
话
,
应
该
知
道
我
们
传
入
了
一
个
包
含
对
象
的
对
象
。
在
这
个
例
子
里
,
对
象
是
包
中
的
一
个
模
块
。
不
过
它
也
可
以
是
任
何
含
有
函
数
的
类
,
这
个
函
数
接
受
一
个
对
象
以
及
字
节
数
组
作
为
参
数
。
这
很
有
用
,
原
因
有
二
:
一
是
,
这
意
味
着
这
段
代
码
更
易
扩
展
。
如
果
有
人
想
通
过
一
个
不
同
的
解
析
器
来
使
用
,
没
问
题
,
只
需
将
它
作
为
参
数
传
入
即
可
。
二
是
,
这
使
得
测
试
更
加
容
易
,
因
为
不
是
硬
编
码
的
,
所
以
使
用
虚
假
数
据
或
者
m
o
c
k
[
1
1
]
对
象
来
替
代
是
很
容
易
的
。
下
一
段
有
趣
的
部
分
就
是
方
法
了
:
4
.
6
.
9
.
5
.
s
e
l
f
.
r
e
q
u
e
s
t
,
s
e
l
f
.
_
b
u
f
f
e
r
)
s
e
l
f
.
_
b
u
f
f
e
r
s
e
l
f
.
h
t
t
p
_
p
a
r
s
e
r
i
n
i
t
h
t
t
p
_
p
a
r
s
e
r
h
t
t
p
_
s
e
r
v
e
r
h
t
t
p
_
p
a
r
s
e
r
d
i
y
_
f
r
a
m
e
w
o
r
k
p
a
r
s
e
_
i
n
t
o
p
a
r
s
e
_
i
n
t
o
R
e
q
u
e
s
t
H
T
T
P
C
o
n
n
e
c
t
i
o
n
h
t
t
p
_
p
a
r
s
e
r
r
e
p
l
y
1
.
a
s
y
n
c
d
e
f
r
e
p
l
y
(
s
e
l
f
)
:
2
.
r
e
q
u
e
s
t
=
s
e
l
f
.
r
e
q
u
e
s
t
3
.
h
a
n
d
l
e
r
=
s
e
l
f
.
r
o
u
t
e
r
.
g
e
t
_
h
a
n
d
l
e
r
(
r
e
q
u
e
s
t
.
p
a
t
h
)
5
.
r
e
s
p
o
n
s
e
=
a
w
a
i
t
h
a
n
d
l
e
r
.
h
a
n
d
l
e
(
r
e
q
u
e
s
t
)
7
.
i
f
n
o
t
i
s
i
n
s
t
a
n
c
e
(
r
e
s
p
o
n
s
e
,
R
e
s
p
o
n
s
e
)
:
8
.
r
e
s
p
o
n
s
e
=
R
e
s
p
o
n
s
e
(
c
o
d
e
=
2
0
0
,
b
o
d
y
=
r
e
s
p
o
n
s
e
)
这
里
,
一
个
的
实
例
使
用
了
中
的
对
象
来
得
到
一
个
生
成
响
应
的
对
象
。
一
个
路
由
可
以
是
任
何
一
个
拥
有
方
法
的
对
象
,
这
个
方
法
接
收
一
个
字
符
串
作
为
参
数
,
返
回
一
个
可
调
用
的
对
象
或
者
抛
出
异
常
。
而
这
个
可
调
用
的
对
象
被
用
来
处
理
请
求
以
及
生
成
响
应
。
处
理
程
序
由
框
架
的
使
用
者
编
写
,
如
上
文
所
说
的
那
样
,
应
该
返
回
字
符
串
或
者
对
象
。
对
象
提
供
了
一
个
友
好
的
接
口
,
因
此
这
个
简
单
的
i
f
语
句
保
证
了
无
论
处
理
程
序
返
回
什
么
,
代
码
最
终
都
得
到
一
个
统
一
的
对
象
。
接
下
来
,
被
赋
值
给
的
实
例
被
调
用
,
将
字
节
字
符
串
发
送
回
客
户
端
。
函
数
返
回
前
,
程
序
在
处
等
待
,
以
确
保
所
有
的
数
据
被
发
送
给
客
户
端
。
只
要
缓
存
中
还
有
未
发
送
的
数
据
,
方
法
就
不
会
执
行
。
类
还
有
两
个
更
加
有
趣
的
部
分
:
一
个
用
于
关
闭
连
接
的
方
法
,
以
及
一
组
用
来
处
理
超
时
机
制
的
方
法
。
首
先
,
关
闭
一
条
连
接
由
下
面
这
个
小
函
数
完
成
:
每
当
一
条
连
接
将
被
关
闭
时
,
这
段
代
码
首
先
取
消
超
时
,
然
后
把
连
接
从
事
件
循
环
中
清
除
。
超
时
机
制
由
三
个
相
关
的
函
数
组
成
:
第
一
个
函
数
在
超
时
后
给
客
户
端
发
送
错
误
消
息
并
关
闭
连
接
;
第
二
个
函
数
用
于
取
消
当
前
的
超
时
;
第
三
个
函
数
调
度
超
时
功
能
。
前
两
个
函
数
比
较
简
单
,
我
将
详
细
解
释
第
三
个
函
数
。
1
0
.
s
e
l
f
.
_
w
r
i
t
e
r
.
w
r
i
t
e
(
r
e
s
p
o
n
s
e
.
t
o
_
b
y
t
e
s
(
)
)
1
1
.
a
w
a
i
t
s
e
l
f
.
_
w
r
i
t
e
r
.
d
r
a
i
n
(
)
H
T
T
P
C
o
n
n
e
c
t
i
o
n
H
T
T
P
S
e
r
v
e
r
r
o
u
t
e
r
g
e
t
_
h
a
n
d
l
e
r
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
R
e
s
p
o
n
s
e
R
e
s
p
o
n
s
e
R
e
s
p
o
n
s
e
s
e
l
f
.
_
w
r
i
t
e
r
S
t
r
e
a
m
W
r
i
t
e
r
a
w
a
i
t
s
e
l
f
.
_
w
r
i
t
e
r
.
d
r
a
i
n
(
)
s
e
l
f
.
_
w
r
i
t
e
r
.
c
l
o
s
e
(
)
H
T
T
P
C
o
n
n
e
c
t
i
o
n
1
.
d
e
f
c
l
o
s
e
_
c
o
n
n
e
c
t
i
o
n
(
s
e
l
f
)
:
2
.
s
e
l
f
.
_
c
a
n
c
e
l
_
c
o
n
n
_
t
i
m
e
o
u
t
(
)
3
.
s
e
l
f
.
_
w
r
i
t
e
r
.
c
l
o
s
e
(
)
_
r
e
s
e
t
_
c
p
m
m
_
t
i
m
e
o
u
t
(
)
4
.
8
.
每
当
函
数
被
调
用
时
,
它
会
先
取
消
之
前
所
有
赋
值
给
的
对
象
。
然
后
,
使
用
B
a
s
e
E
v
e
n
t
L
o
o
p
.
c
a
l
l
_
l
a
t
e
r
[
1
2
]
函
数
。
函
数
在
超
时
数
秒
(
)
后
执
行
。
如
果
你
还
记
得
函
数
的
内
容
,
就
知
道
每
当
接
收
到
数
据
时
,
这
个
函
数
就
会
被
调
用
。
这
就
取
消
了
当
前
的
超
时
并
且
重
新
安
排
函
数
在
超
时
数
秒
(
)
后
执
行
。
只
要
接
收
到
数
据
,
这
个
循
环
就
会
不
断
地
重
置
超
时
回
调
。
如
果
在
超
时
时
间
内
没
有
接
收
到
数
据
,
最
后
函
数
就
会
被
调
用
。
创
建
连
接
创
建
连
接
我
们
需
要
创
建
对
象
,
并
且
正
确
地
使
用
它
们
。
这
一
任
务
由
类
完
成
。
1
.
d
e
f
_
c
o
n
n
_
t
i
m
e
o
u
t
_
c
l
o
s
e
(
s
e
l
f
)
:
2
.
s
e
l
f
.
e
r
r
o
r
_
r
e
p
l
y
(
5
0
0
,
'
t
i
m
e
o
u
t
'
)
3
.
s
e
l
f
.
c
l
o
s
e
_
c
o
n
n
e
c
t
i
o
n
(
)
5
.
d
e
f
_
c
a
n
c
e
l
_
c
o
n
n
_
t
i
m
e
o
u
t
(
s
e
l
f
)
:
6
.
i
f
s
e
l
f
.
_
c
o
n
n
_
t
i
m
e
o
u
t
:
7
.
s
e
l
f
.
_
c
o
n
n
_
t
i
m
e
o
u
t
.
c
a
n
c
e
l
(
)
9
.
d
e
f
_
r
e
s
e
t
_
c
o
n
n
_
t
i
m
e
o
u
t
(
s
e
l
f
,
t
i
m
e
o
u
t
=
T
I
M
E
O
U
T
)
:
1
0
.
s
e
l
f
.
_
c
a
n
c
e
l
_
c
o
n
n
_
t
i
m
e
o
u
t
(
)
1
1
.
s
e
l
f
.
_
c
o
n
n
_
t
i
m
e
o
u
t
=
s
e
l
f
.
l
o
o
p
.
c
a
l
l
_
l
a
t
e
r
(
1
2
.
t
i
m
e
o
u
t
,
s
e
l
f
.
_
c
o
n
n
_
t
i
m
e
o
u
t
_
c
l
o
s
e
)
_
r
e
s
e
t
_
c
o
n
n
_
t
i
m
e
o
u
t
s
e
l
f
.
_
c
o
n
n
_
t
i
m
e
o
u
t
a
s
y
n
c
i
o
.
H
a
n
d
l
e
_
c
o
n
n
_
t
i
m
e
o
u
t
_
c
l
o
s
e
t
i
m
e
o
u
t
h
a
n
d
l
e
_
r
e
q
u
e
s
t
_
c
o
n
n
_
t
i
m
e
o
u
t
_
c
l
o
s
e
t
i
m
e
o
u
t
_
c
o
n
n
_
t
i
m
e
o
u
t
_
c
l
o
s
e
H
T
T
P
C
o
n
n
e
c
t
i
o
n
H
T
T
P
S
e
r
v
e
r
类
是
一
个
简
单
的
容
器
,
可
以
存
储
着
一
些
配
置
信
息
(
解
析
器
,
路
由
和
事
件
循
环
实
例
)
,
并
使
用
这
些
配
置
来
创
建
实
例
:
6
.
的
每
一
个
实
例
能
够
监
听
一
个
端
口
。
它
有
一
个
的
异
步
方
法
来
创
建
的
实
例
,
并
安
排
它
们
在
事
件
循
环
中
运
行
。
这
个
方
法
被
传
递
给
a
s
y
n
c
i
o
.
s
t
a
r
t
_
s
e
r
v
e
r
[
1
3
]
作
为
一
个
回
调
函
数
。
也
就
是
说
,
每
当
一
个
T
C
P
连
接
初
始
化
时
(
以
和
为
参
数
)
,
它
就
会
被
调
用
。
H
T
T
P
S
e
r
v
e
r
H
T
T
P
C
o
n
n
e
c
t
i
o
n
1
.
c
l
a
s
s
H
T
T
P
S
e
r
v
e
r
(
o
b
j
e
c
t
)
:
2
.
d
e
f
i
n
i
t
(
s
e
l
f
,
r
o
u
t
e
r
,
h
t
t
p
_
p
a
r
s
e
r
,
l
o
o
p
)
:
3
.
s
e
l
f
.
r
o
u
t
e
r
=
r
o
u
t
e
r
4
.
s
e
l
f
.
h
t
t
p
_
p
a
r
s
e
r
=
h
t
t
p
_
p
a
r
s
e
r
5
.
s
e
l
f
.
l
o
o
p
=
l
o
o
p
7
.
a
s
y
n
c
d
e
f
h
a
n
d
l
e
_
c
o
n
n
e
c
t
i
o
n
(
s
e
l
f
,
r
e
a
d
e
r
,
w
r
i
t
e
r
)
:
8
.
c
o
n
n
e
c
t
i
o
n
=
H
T
T
P
C
o
n
n
e
c
t
i
o
n
(
s
e
l
f
,
r
e
a
d
e
r
,
w
r
i
t
e
r
)
9
.
a
s
y
n
c
i
o
.
e
n
s
u
r
e
_
f
u
t
u
r
e
(
c
o
n
n
e
c
t
i
o
n
.
h
a
n
d
l
e
_
r
e
q
u
e
s
t
(
)
,
l
o
o
p
=
s
e
l
f
.
l
o
o
p
)
H
T
T
P
S
e
r
v
e
r
h
a
n
d
l
e
_
c
o
n
n
e
c
t
i
o
n
H
T
T
P
C
o
n
n
e
c
t
i
o
n
S
t
r
e
a
m
R
e
a
d
e
r
S
t
r
e
a
m
W
r
i
t
e
r
1
.
s
e
l
f
.
_
s
e
r
v
e
r
=
H
T
T
P
S
e
r
v
e
r
(
s
e
l
f
.
r
o
u
t
e
r
,
s
e
l
f
.
h
t
t
p
_
p
a
r
s
e
r
,
s
e
l
f
.
l
o
o
p
)
2
.
s
e
l
f
.
_
c
o
n
n
e
c
t
i
o
n
_
h
a
n
d
l
e
r
=
a
s
y
n
c
i
o
.
s
t
a
r
t
_
s
e
r
v
e
r
(
3
.
s
e
l
f
.
_
s
e
r
v
e
r
.
h
a
n
d
l
e
_
c
o
n
n
e
c
t
i
o
n
,
4
.
h
o
s
t
=
s
e
l
f
.
h
o
s
t
,
5
.
p
o
r
t
=
s
e
l
f
.
p
o
r
t
,
6
.
r
e
u
s
e
_
a
d
d
r
e
s
s
=
T
r
u
e
,
7
.
r
e
u
s
e
_
p
o
r
t
=
T
r
u
e
,
8
.
l
o
o
p
=
s
e
l
f
.
l
o
o
p
)
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页