上一页 1 2 3 4 5 6 7 8 ··· 18 下一页

2012年7月11日

摘要: 一、Twisted基本模型Twisted 网络编程框架是一种基于事件的网络编程框架,用户需要继承特定的类,并重载其中的方法来处理网络通信中可能出现的各种情况。Twisted的网络通信模型最基本的也要由三部分组成:反应器(reactor)、协议(protocol)、工厂(factory)。其中反应器用来执行事件循环,分发事件处理等等,每个应用程序中一般只能启动一个reactor。协议用来完成与一个已经连接成功的主机的交互功能,主要有数据的接收和发送功能。连接的断开事件也可以在这里处理。工厂负责与一个协议的启动和关闭功能,而且还负责在连接成功时生成一个协议对象,(by gashero)用于与远程主 阅读全文
posted @ 2012-07-11 17:20 很多不懂呀。。 阅读(816) 评论(0) 推荐(0) 编辑
摘要: 最为简单的情况下,除了了解清reactor的简单使用,你还要了解Protocol和Factory。它们最终都会由reactor的侦听建立和run来统一调度起来。 建立服务器的第一个要解决的问题就是服务与外界的交流协议。协议的定义在twisted中是通过继承twisted.internet.protocol.Protocol类来实现的。在协议中你可以定义连接、数据接收、断开连接等一系列的事件如果进行响应。但是对于所有连接上来的协议的建立、持久配置数据的存储这样的内容并不会保存在协议中。 持久配置数据的存储通常都会保存在工厂里。 工厂的定义在twisted中是通过继承... 阅读全文
posted @ 2012-07-11 16:54 很多不懂呀。。 阅读(724) 评论(0) 推荐(0) 编辑

2012年6月28日

摘要: 1、C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX必须至少为32767。rand()函数不接受参数,默认以1为种子(即起始值)。随机数生成器总是以相同的种子开始,所以形成的伪随机数列也相同,失去了随机意义。2、C++中另一函数srand( ),可以指定不同的数(无符号整数变元)为种子。但是如果种子相同,伪随机数列也相同。一个办法是让用户输入种子,但是仍然不理想。3、比较理想的是用变化的数,比如时间来作为随机数生成器的种子。 time的值每时每刻都不同。所以种子不同,所以,产生的随机数也不同。// C++随机函数#include 阅读全文
posted @ 2012-06-28 18:12 很多不懂呀。。 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 洗牌算法网上讲的也不少了,归结起来有如下两种形式。第一种是每次找一个随机的位置,将54个数依次放到找到的位置中,其思路大概这样的:1、用一个Bool型数组记录各个位置是否已经放置了数,如果放置则置true,没有则为false。在算法开始时数组初始化为false。2、每次产生一个0~53的随机数,看这个位置是否已经放置了数,如果已经放置了,则继续用同样的方法找一个随机位置判断;如果这个位置还未放置,则设置此位置,并标记其已经放置。3、反复执行(2)直到所有的位置都放置了数为止。只要设置成功54次数就说明所有位置已经设置了数。它的一个例子:void shuffle(int dest[],int n 阅读全文
posted @ 2012-06-28 18:08 很多不懂呀。。 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 1、生成随机数的方法Function SetEmpId() As String Dim ref As String Randomize ref = Int((99999 - 10000) * Rnd + 10000) SetEmpId = refEnd FunctionThis function’s purpose is to assign a unique five-digit number to each new employee. To generate a random integer between two given integers where ending_number = 9 阅读全文
posted @ 2012-06-28 12:47 很多不懂呀。。 阅读(3691) 评论(0) 推荐(0) 编辑

2012年6月26日

摘要: htons、htonl、ntohl、ntohs是用来在网络字节顺序和本机字节顺序之间相互转换的函数。可以这么理解:n :network;h :host;s:short;l:longhtons :host to network short型,依次类推。具体用法为:htons:htons( u_short hostshort);hostshort:主机字节顺序表达的16位数。注释:本函数将一个16位数从主机字节顺序转换成网络字节顺序。返回值:htons()返回一个网络字节顺序的值。其余的同理。struct sockaddr_in servaddr;bzero(&servaddr,sizeo 阅读全文
posted @ 2012-06-26 17:15 很多不懂呀。。 阅读(2432) 评论(0) 推荐(0) 编辑
摘要: 你需要了解的一些系统调用:socket()bind()connect()listen()accept()send()recv()sendto()recvfrom()close()shutdown()setsockopt()getsockopt()getpeername()getsockname()gethostbyname()gethostbyaddr()getprotobyname()fcntl()我们将在以下详细介绍这些系统调用。1. socket()函数#include <sys/types.h>#include <sys/socket.h>int socket( 阅读全文
posted @ 2012-06-26 17:06 很多不懂呀。。 阅读(13002) 评论(0) 推荐(2) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2012-06-26 16:45 很多不懂呀。。 阅读(20) 评论(0) 推荐(0) 编辑
摘要: ======== TCP ========TCP_Serversocket()bind()listen() accept()write()read()close() 和shutdown() TCP_Client socket() connect() send() 和recv() close() 和shutdown() ======== UDP ======== UDP_Server socket()bind()sendto() 和recvfrom() close() 和shutdown() UDP_Client socket()sendto() 和recvfrom() close() 和shu 阅读全文
posted @ 2012-06-26 16:38 很多不懂呀。。 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 在写网络程序的时候,建立TCP socket: sock = socket(PF_INET, SOCK_STREAM, 0);然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET,即使用IP。相关头文件中的定义:AF = Address Family PF = Protocol Family AF_INET = PF_INET所以在windows中AF_INET与PF_INET完全一样. 而在Unix/Linux系统中,在不同的版本中这两者有微小差别.对于BSD,是AF,对于POSIX是PF.理论上建立socke 阅读全文
posted @ 2012-06-26 15:04 很多不懂呀。。 阅读(1840) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 18 下一页

导航