摘要: 代码中使用WinSock2函数库,设计并实现了简单的聊天室功能。该程序为命令行程序。对于服务器和客户端,需要:服务器:创建监听套接字,并按本地主机绑定;主线程监听并接受来自客户端的请求,并为该客户端创建单独线程;接收与发送消息的事务放在同各客户端的单独线程中处理。客户端:创建套接字,并对服务器发起连接;主线程始终处于发送消息的状态;副线程用于不断从服务器接收来自其他客户端的消息。实验代码及部分说明如下:服务器(Server.cpp)#include #include #include #include #includeusing namespace std;#define DEFAULT_PO 阅读全文
posted @ 2013-12-10 15:44 l3sl!e 阅读(1991) 评论(0) 推荐(1) 编辑
摘要: 主要是想把某一个网页中的所有链接都保存下来,便于离线查看。使用python语言为了练手,看了挺多教程,却很少实战。import urllib2import reimport osimport timemaster_url = 'http://www.catb.org/esr/faqs/hacker-howto.html'master_page_name = 'How to become a hacker.html'start = time.time()master_page = urllib2.urlopen(master_url).read()urls_pat 阅读全文
posted @ 2013-10-26 09:53 l3sl!e 阅读(226) 评论(0) 推荐(0) 编辑
摘要: Python的文档中对walk的介绍:walk(top, topdown=True, onerror=None, followlinks=False) 树状目录的生成器。 对于以top参数为根的目录下每一个子目录(包括top本身,但不包括‘.’和‘..’),生成3元组: dirpath, dirnames, filenames dirpath是字符串,内有至该目录下的路径。dirnames则是一个列表,内含该目录下所有子目录的名字(同样没有'.'和'..')。filenames则是该目录下所有非目录文件的名字。需要注意的是,这两个名称列表里仅仅包含文件和目录的名 阅读全文
posted @ 2013-10-04 21:11 l3sl!e 阅读(423) 评论(0) 推荐(0) 编辑
摘要: def process_line(line, hist): """Adds the words in the line to the histogram. Modifies hist. line: string hist: histogram (map from word to frequency) """ # replace hyphens with spaces before splitting line = line.replace('-', ' ') for word in line.split 阅读全文
posted @ 2013-10-03 12:50 l3sl!e 阅读(303) 评论(0) 推荐(0) 编辑
摘要: If you played with the fibonacci function from Section 6.7, you might have noticed thatthe bigger the argument you provide, the longer the function takes to run. Furthermore,the run time increases very quickly.To understand why, consider Figure 11.2, which shows the call graph for fibonacci withn=4: 阅读全文
posted @ 2013-09-28 21:27 l3sl!e 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 在中第十章的练习中,涉及到了分半查找的bisect模块。为此,在网上查阅了Python中bisect模块的相关内容。有几个链接相对权威和明白:1> http://docs.python.org/2/library/bisect.html2> http://www.cnblogs.com/skydesign/archive/2011/09/02/2163592.html这里,就我有疑问的地方做个记录:第一,bisect模块中的函数都有哪些用途。根据Python网站的参考手册,这个模块的主要用途是运用Bisection Algorithm(分半算法)在已序的列表中进行查找和插入操作。练 阅读全文
posted @ 2013-09-28 11:31 l3sl!e 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 在vim中如果想使用系统粘贴板,也就是说,如果你在其他程序中复制内容,那么使用shift+insert组合键就可以粘贴进来。需要说明的是,vim中的粘贴板有很多,你可以输入 :reg来进行查看。而我们平常输入p来进行粘贴的只是其中名叫 “ 粘贴板的内容。对于这些粘贴板,复制和粘贴的操作指令类似,输入“?y或“?p即可以复制或粘贴某粘贴板上的内容(把指令中的?更改成粘贴板号)。其中,系统粘贴板也叫“.粘贴板,因此,输入".p能实现shift+insert的效果(注:vi的版本不同,系统粘贴板号可能不同)。 阅读全文
posted @ 2013-06-24 11:25 l3sl!e 阅读(396) 评论(0) 推荐(0) 编辑
摘要: mv oldname newname显然,移动命令可以实现重命名。而rename命令通常用于批量文件的重命名。 阅读全文
posted @ 2013-06-24 10:52 l3sl!e 阅读(148) 评论(0) 推荐(0) 编辑
摘要: Formsforms用于搜集用户输入网页上的信息。它们可以当作网络应用的接口,或者用于发送网络数据。仅仅使用forms,它们并不那么有用。它们通常结合某种编程语言来处理用户输入的数据。HTML中使用的基本forms标签包括form,input,textarea,select和option。form标签form定义一个表单。如果你希望使用它来供用户提交信息,那么需要指明该标签的action属性,从而告诉程序用户的信息将被提交到哪。method属性将说明信息如何被传送,该属性默认值为get,该值表示信息将在网页地址中传送。method属性还为post,此时将隐性地传送表单信息。可见,get用于较短 阅读全文
posted @ 2013-06-24 08:50 l3sl!e 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 前两天,ubuntu突然之间就没了任务栏,随后菜单栏也消失了。因为忙着毕设中期,一直放在那里没去理它。今天网上搜了下救法,在论坛里找到了生机: #恢复默认面板,输入终端命令: STEP 1. gconftool --recursive-unset /apps/panel # gconftool 是gconf的CLI前端,是Gnome的配置工具。 “--recursive-unset”选项用于递归地复原所有键值。 STEP 2. rm -rf ~/.gconf/apps/panel #删除面板相关配置源 STEP 3. pkill gnome-panel #终止是为了重启... 阅读全文
posted @ 2013-05-12 12:56 l3sl!e 阅读(306) 评论(0) 推荐(0) 编辑