2012年10月20日
摘要: 1. 利用 __iter__内建属性ifhasattr(obj,'__iter__'): print'iterable'这种方法不能检测字符串,如:hasattr('', '__iter__')返回False。 或者这样子:try: i=iter(obj)exceptTypeError,v: printv2. 假设obj是iterable的,如果不是的话,就抛出异常try: forvinobj: printvexceptTypeError,e: printe3. 检查实例是否是collections.Iterable子类impor 阅读全文
posted @ 2012-10-20 22:13 sanlo 阅读(2411) 评论(0) 推荐(0) 编辑
摘要: 有时候我们可能需要随机获取一个可用的端口号,本文采用使用以下方法完成这项任务:思路: 将一个socket 绑定到本机,使用getsockname获取此socket关联的端口号我们可以定义这样一个函数,用以获取可用的端口号:函数声明boolgetAvaliablePort(unsignedshort&port);//返回:若成功则为true,否则为false下面是函数定义:1/**2*@brief获取可用的端口3*4*@paramport:输出,返回可用的端口号5*6*@return若成功则返回true,否则放回false7*/8boolgetAvaliablePort(unsigned 阅读全文
posted @ 2012-10-20 22:02 sanlo 阅读(12342) 评论(0) 推荐(0) 编辑
摘要: 服务器端的编写: 1. 使用socket函数新建一个套接字,指定其 协议族family(AF_INET)、协议类型type(SOCK_STREAM)、协议(0, 系统根据family和type指定默认值) 2. 使用bind函数将本地协议地址绑定到套接字上, 3. 使用listen函数监听客户端发来的请求 4. 使用accept函数循环接受客户端的请求 5. 使用send和recv函数发送和接收数据客户端程序的编写 : 1. 使用socket函数创建一个套接字 2. 使用connect函数连接服务器 3. 使用send和recv发送和接受数据示例如下:由于使用winsock之前... 阅读全文
posted @ 2012-10-20 20:59 sanlo 阅读(3982) 评论(0) 推荐(0) 编辑
摘要: 一、TCP的特点 1. TCP是面向连接的,两台主机想要通过TCP则必须先建立连接 2. TCP提供了可靠性(reliability)。当TCP想另一端发送数据时,它要求对端返回一个确认,如果没有收到确认,TCP就会自动重传数据并等待更长时间。 注:TCP并不保证数据一定会被对方端点接收。如果不能成功发送数据就会通知用户,它提供的是数据的可靠传输或故障的可靠通知。 提供可靠性的机制有:确认,序列号,RTT估算、超时和重传。 3. TCP提供流量控制(flow control)。TCP总是告知对端在任何时刻它一次能够从对端接收多少字节的数据,这被称为通告窗口(adertised win... 阅读全文
posted @ 2012-10-20 17:10 sanlo 阅读(287) 评论(0) 推荐(0) 编辑