Python网络编程
TCP编程代码示例
单线程Echo服务
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from socket import * # @UnusedWildImport DEFAULT_PORT = 1918 if __name__ == '__main__': # 创建基于IPv4的TCP套接字对象 s = socket( AF_INET, SOCK_STREAM ) # 绑定到通配符地址的1918端口 s.bind( ( '0.0.0.0', DEFAULT_PORT ) ) logging.debug( 'Echo server is listening on port %d', DEFAULT_PORT ) # 开始监听,最大排队数量(backlog)为10 s.listen( 10 ) while True: # 接受一个客户端连接请求,返回套接字对象和地址的元组 client, addr = s.accept() logging.debug( '%s connected', addr ) msg = client.recv( 1024 ) logging.debug( 'Received message : %s', msg ) client.send( msg ) client.close() |
以下是客户端代码:
|
1 2 3 4 5 6 7 8 9 10 |
from socket import * # @UnusedWildImport DEFAULT_PORT = 1918 if __name__ == '__main__': # 创建基于IPv4的TCP套接字对象 s = socket( AF_INET, SOCK_STREAM ) # 连接到服务器端 s.connect( ( '127.0.0.1', DEFAULT_PORT ) ) s.send( 'Hello Server!' ) logging.debug( 'Echo from server: %s', s.recv( 1024 ) ) |
基于asyncore模块的异步Echo服务
asyncore模块将网络活动抽象为事件,由事件循环分派出去进行异步处理。事件循环通过select()或者poll()系统调用构建。
阅读全文
14 years ago
0
Python并发编程
基本概念
一个运行的程序称作进程。每个进程都有自己的系统状态,包括内存、已打开文件列表、用于跟踪正在执行的指令的程序计数器以及用于保存函数的局部变量的调用栈。通常在一个控制流序列中, 进程逐条执行语句,这一般称为进程的主线程。在任何一个给定的时刻,程序都只做…
阅读全文
14 years ago
2
Python学习笔记
安装与配置
安装Python
- Windows:可以使用WinPython,这是一个免安装、开箱即用的Python发布版,包含很多预置工具
- Linux:通常已经随操作系统安装
环境变量设置
| 环境变量 | 说明 |
| PYTHON_HOME | Python安装目录 |
| PATH | 添加 %PYTHON_HOME%;%PYTHON_HOME%\Scripts |
| PYTHONPATH |
Python的模块搜索路径,在前面出现的优先级高 仅在Windows下你可… |
14 years ago
0
CSS3学习笔记
常用CSS3样式
文字
线性渐变
只有基于Webkit的浏览器才支持此特性,Firefox不支持:
|
1 2 3 4 5 |
selector { background: -webkit-linear-gradient(#3ADB69, #059CF7); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } |
背景
限制背景图片大小
注意:不能和背景颜色一起使用,但是可以和渐变背景一起使用:
|
1 2 3 4 5 6 7 8 9 |
selector { /* 不能和background-color配合 */ background: -webkit-linear-gradient(0deg, #3ADB69, #059CF7, #3ADB69); background: -o-linear-gradient(0deg, #3ADB69, #059CF7, #3ADB69); background: -moz-linear-gradient(0deg, #3ADB69, #059CF7, #3ADB69); background: linear-gradient(0deg, #3ADB69, #059CF7, #3ADB69); background-repeat: no-repeat; background-size: 3px 100%; /* 背景宽度3像素,高度100% */ } |
线性渐变
CSS格式说明:
从左向右的渐变:
你可以为direction指定任意的渐变角度:
设置占位符样式
要设置表单元素placeholder的样式,需要为不同浏览器设置伪元素/类的样式:
CSS选择器
我们知道CSS由一…
阅读全文
15 years ago
0
HTML5学习笔记
相对HTML4的变化
文档声明
HTML5文件的扩展名仍然是html或者htm,内容类型仍然是text/html,但是文档类型、编码格式等信息的声明有所简化:
|
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <!-- HTML DocType声明--> <html lang="en"> <head> <meta charset="UTF-8"><!-- 编码格式声明,推荐UTF-8 --> <title>HTML5 Study</title> </head> <body> <!-- body元素可以省略 --> </body> </html> |
语法
HTML5在语法方面充分考虑了对HTML4的兼容性,以及便利性。
标记的省略
| 类型 | 说明 |
| 不允许结束标记 | 这类元素不得书写结束标记,仅支持 <br/> 或者 <br> 的形式。大部分不包含文本节点的元素在此类中,例如img、br、input、link、meta、param等 |
| 可选结束标记 | 结束标记可有可无,均合法。例如p、li、option、t… |
15 years ago
0
AspectJ编程学习笔记
AOP基本概念
| 名词 | 含义 |
| 切面(方面,Aspect) | 一个关注点的模块化,这个关注点实现可能横切(crosscutting)多个对象切面的例子包括:事务控制、日志记录、权限控制等在AspectJ中,切面表现为Java类,其源码具有AspectJ的特殊语法增强,… |
15 years ago
1
15