SQLite 的 Python 接口
这篇文章对 SQLite 的 Python 接口做了很全面的介绍。走马观花介绍一下特性:.tables 查看全部表;SELECT SQLITE_VERSION()
获得 SQLite 版本;finally: if conn: conn.close()
是安全关闭连接的写法;with conn
是另一种写法;.headers on 可以在输出是把表头带上;cursor.executemany 可以执行批量数据;cursor.lastrowid 获取最后一次插入的 id; fetch 出来的数据可以用数字作为索引获取字段,也可以用字段名获取字段;参数化查询用 "?";字段用 BLOB 可以存二进制数据,例如图片;用 PRAGMA table_info(table)
可以查看 SQLite 的元数据,例如表,列信息 …
SYN 洪水攻击简介
SYN 洪水攻击是一种 DDos 攻击的常见形式。它基于 TCP 三路握手的弱点。一次三路握手会经历客户端 SYN, 服务端 SYN-ACK, 客户端再次 ACK。服务端在客户端 SYN 到达时调用 accept() 并阻塞,在客户端 ACK 收到 accept() 才返回。SYN flood 就是发送大量恶意的 SYN 给服务器,又不发 ACK 给服务器,结果服务器就要维护非常多的连接对象,直到内存被撑爆。防御手段的话得要对 TCP 协议做出一些修正,例如收到 SYN 只开一点内存用于存客户端信息而不创建连接,或者通过校验才创建连接等等。一般对于 DDos 攻击,服务端没有什么好的防御手段,只能硬扛,除非去购买 DDos 防御服务,把流量先引到服务商那里清洗干净了再导回来 …
read morePython Coroutine 和 Go Goroutine 对比
使用 Python 实现多线程通信时得用锁把共享变量锁住,要不然就是用线程安全的 Queue 存任务数据。Go 语言的 goroutine 关键字可以确保任意时刻只有一个 channel 可以访问,其余 channel 会被堵塞。单单就示例代码来说,对 Python 的评价有些过时,现在对这种场景 Python 有了更好的工具:coroutine,参考 https://gist.github.com/soasme/27f844e5c82c07a6ac85af46f5af54b6
read more