摘要:
select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include <sys/time.h> #include <unistd.h> select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include <sys/time.h> #include <unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout); 参数maxfd是需要监视的最大的文件描述符 阅读全文
摘要:
简介:软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写代码感兴趣,而不喜欢文档编写和软件测试这类"没有创新"的工作。既然如此,为什么不让程序员在编写软件时自己加入一些用于测试的代码,使测试过程自动化呢?在软件工程中,这一技术称为自动单元测试,本文介绍在用Python开发软件时如何实现这一目标。一、软件测试大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施。正像软件熵(software entropy)所描述的那样:一个程序从设计很好的状 阅读全文
摘要:
Pythonunittest模块的相关用法待测源码类:widget.py#!/usr/bin/env pythonclass Widget: def __init__(self, size = (40, 40)): self._size = size def getSize(self): return self._size def resize(self, width, height): if width == 0 or height < 0: raise ValueError, "illegal size" ... 阅读全文
摘要:
代码: #! /usr/bin/python# Filename: inherit.py# Author: yanggangclass SchoolMember: def __init__(self,name,age): self.name = name self.age = age print 'init SchoolMember: ', self.name def tell(self): print 'name:%s; age:%s' % (self.name, self.age)class Teacher(SchoolM... 阅读全文
摘要:
Server:# serverimport socketaddress = ('127.0.0.1', 31500)s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # s = socket.socket()s.bind(address)s.listen(5)ss, addr = s.accept()print 'got connected from',addrss.send('byebye')ra = ss.recv(512)print rass.close()s.close()Clie 阅读全文
摘要:
Server:import socketaddress = ('127.0.0.1', 31500)s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.bind(address)while True: data, addr = s.recvfrom(2048) if not data: print "client has exist" break print "received:", data, "from", addrs.close()Client:import 阅读全文
摘要:
重剑点评: 真简单明了!复习网络编程,顺便学习python。一、套接字套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。它们允许程序接受并进行连接,如发送和接受数据。为了建立通信通道,网络通信的每个端点拥有一个套接字对象极为重要。套接字为BSD UNIX系统核心的一部分,而且他们也被许多其他类似UNIX的操作系统包括Linux所采纳。许多非BSD UNIX系统(如ms-dos,windows,os/2,mac os及大部分主机环境)都以库形式提供对套接字的支持。三种最流行的套接字类型是:stream,datagram 阅读全文
摘要:
1. 模块定义(单独显示一页)/** @defgroup 模块名 模块的说明文字* @{*/… 定义的内容 …/** @} */ // 模块结尾2. 分组定义(在一页内分组显示)/** @name 分组说明文字* @{*/… 定义的内容 …/** @} */3. 变量、宏定义、类型定义简要说明/** 简要说明文字 */#define FLOAT float/** @brief 简要说明文字(在前面加 @brief 是标准格式) */#define MIN_UINT 0/** 分行的简要说明 /n* 这是第二行的简要说明*/int b;4. 函数说明/** 简要的函数说明文字 * @param 阅读全文
摘要:
常用的网络命令:netstat命令netstat是用来显示网络的连接,路由表和接口统计等网络的信息.netstat有许多的选项我们常用的选项是 -an 用来显示详细的网络状态.至于其它的选项我们可以使用帮助telnettelnet是一个用来远程控制的程序,但是我们完全可以用这个程序来调试我们的服务端程序的. 比如我们的服务器程序在监听8888端口,我们可以用telnet localhost 8888来查看服务端的状况.linux网络编程【参考】:linux socket常用函数 http://blog.csdn.net/Sunboy_2050/archive/2010/06/12/566627 阅读全文
摘要:
现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的。由这4种方法组合优化就有了.Net和Java下灵活多变的,编程简便的线程进程控制手段。 这4种方法具体定义如下 在《操作系统教程》ISBN 7-5053-6193-7 一书中可以找到更加详细的解释 1临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2互斥量:为协调共同对一个共享资源的单独访问而设计的。 3信号量:为控制一个具有有限数量用户资源而设计。 4事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。 1. 临界区(Critical Section) 保证在某... 阅读全文