??xml version="1.0" encoding="utf-8" standalone="yes"?>高清不卡在线观看av,美洲精品一卡2卡三卡4卡四卡,亚洲免费精品http://www.aygfsteel.com/huyi2006/category/18153.html 做一个有思想的h,期待与每一位热爱思考的Z?您的x是对我最大的支持?/description>zh-cnTue, 12 Jun 2012 09:23:46 GMTTue, 12 Jun 2012 09:23:46 GMT60长连接与短连接的区别http://www.aygfsteel.com/huyi2006/archive/2012/06/12/380613.htmlallicallicTue, 12 Jun 2012 07:58:00 GMThttp://www.aygfsteel.com/huyi2006/archive/2012/06/12/380613.htmlhttp://www.aygfsteel.com/huyi2006/comments/380613.htmlhttp://www.aygfsteel.com/huyi2006/archive/2012/06/12/380613.html#Feedback0http://www.aygfsteel.com/huyi2006/comments/commentRss/380613.htmlhttp://www.aygfsteel.com/huyi2006/services/trackbacks/380613.html 长连接:client方与server方先建立q接Q连接徏立后不断开Q然后再q行报文发送和接收。这U方式下׃通讯q接一直存在。此U方式常用于P2P通信?br> 短连接:Client方与server每进行一ơ报文收发交易时才进行通讯q接Q交易完毕后立即断开q接。此方式常用于一点对多点通讯。C/S通信?br> 二、长q接与短q接的操作过E: 短连接的操作步骤是:建立q接——数据传输——关闭连?..建立q接——数据传输——关闭连?br> 长连接的操作步骤是:建立q接——数据传?..Q保持连接)...数据传输——关闭连?br> 三、长q接与短q接的用时机:
长连接:短连接多用于操作频繁Q点对点的通讯Q而且q接C能太多的情况。每个TCPq接的徏立都需要三ơ握手,每个TCPq接的断开要四ơ握手。如果每ơ操作都要徏立连接然后再操作的话处理速度会降低,所以每ơ操作下ơ操作时直接发送数据就可以了,不用再徏立TCPq接。例如:数据库的q接用长q接Q如果用短连接频J的通信会造成socket错误Q频J的socket创徏也是对资源的费?br> 短连接:web|站的http服务一般都用短q接。因为长q接对于服务器来说要耗费一定的资源。像web|站q么频繁的成千上万甚至上亿客L的连接用短连接更省一些资源。试惛_果都用长q接Q而且同时用成千上万的用户Q每个用户都占有一个连接的话,可想而知服务器的压力有多大。所以ƈ发量大,但是每个用户又不需频繁操作的情况下需要短q接。MQ长q接和短q接的选择要视需求而定?br> 四、发送接收方式:
1、异步:报文发送和接收是分开的,怺独立Q互不媄响的。这U方式又分两U情况:
异步双工Q接收和发送在同一个程序中Q有两个不同的子q程分别负责发送和接送?br> 异步单工Q接送和发送用两个不同的E序来完成?br> 2、同步:报文发送和接收是同步进行,x文发送后{待接送返回报文。同步方式一般需要考虑时问题Q试x们发送报文以后也不能无限{待啊,所以我们要讑֮一个等待时候。超q等待时间发送方不再{待读返回报文。直接通知时q回?br> 五、报文格式:
通信报文格式多样性更多,相应地就必须设计对应的读写报文的接收和发送报文函数?br> d与非d方式
1、非d方式Q读函数不停的进行读动作Q如果没有报文接收到Q等待一D|间后时q回Q这U情况一般需要指定超时时间?
2、阻塞方式:如果没有接收到报文,则读函数一直处于等待状态,知道报文到达?br> 循环d方式
1、一ơ直接读写报文:在一ơ接收或发送报文动作中一ơ性不加分别地全部d或全部发送报文字节?br> 2、不指定长度循环dQ这一版发生在短连接进E中Q受|络路由{限Ӟ一ơ较长的报文可能在网l传输过E中被分解成很多个包Q一ơ读取可能不能全部读完一ơ报文,q就需要@环读取报文,知道d为止?br> 3、带长度报文头@环读写:q种情况一般在长连接中Q由于在长连接中没有条g能够判断循环d什么时候结束。必要加长度报文头。读函数先是d报文头的长度Q再Ҏq个长度去读报文Q实际情况中Q报头码制格式还l常不一P如果是非ASCII的报文头Q还必须转换成ASCII常见的报文头~制有:1、n个字节的ASCII码?、n个字节的BCD码?、n个字节的|络整型码?br> 以上是几U比较典型的d报文方式Q可以与通信方式模板一?预先提供一些典型的APId函数?br> 当然在实际问题中Q可能还必须~写与对Ҏ文格式配套的dAPI. 在实际情况中Q往往需要把我们自己的系l与别h的系l进行连接, 有了以上模板与API,可以说连接Q何方式的通信E序都不存在问题?

allic 2012-06-12 15:58 发表评论
]]>
求素?/title><link>http://www.aygfsteel.com/huyi2006/archive/2008/07/28/218014.html</link><dc:creator>allic</dc:creator><author>allic</author><pubDate>Mon, 28 Jul 2008 03:56:00 GMT</pubDate><guid>http://www.aygfsteel.com/huyi2006/archive/2008/07/28/218014.html</guid><wfw:comment>http://www.aygfsteel.com/huyi2006/comments/218014.html</wfw:comment><comments>http://www.aygfsteel.com/huyi2006/archive/2008/07/28/218014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/huyi2006/comments/commentRss/218014.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/huyi2006/services/trackbacks/218014.html</trackback:ping><description><![CDATA[ 有时我们需要特定的素数Q比如我们在对哈希表取模是就要用到。这你给Z一D小E序可以扑ևl定数附q的素数。程序在VC6.0下编译通过<br /><div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #f5f5f5"><div>#include <stdio.h><br />#include <stdlib.h><br />#include <math.h><br />int prime(int m)<br />{<br /> int i,k;<br /> k = (int)sqrt(m);<br /> for(i=2; i<k; i++)<br /> if (m % i == 0)<br />  return 0;<br /> return 1;<br />}<br />int main(int argc, char** argv)<br />{<br /> int input = 0;<br /> int val, ret = 0;<br /> if (argc != 2)<br /> {<br />  printf("usage:find_prime num\n");<br />  exit(-1);<br /> }<br />   <br /> input = atoi(argv[1]);<br /> //printf("%d\n",input);<br /> val = input;<br /> //向下?br /> while (!ret)<br /> {<br />  ret = prime(val);  <br />  val--;<br /> }<br /> printf("%d\n", ++val);<br /> //向上?br /> val = input;<br /> ret = 0;<br /> while (!ret)<br /> {<br />  ret = prime(val);<br />  val++;<br /> }<br /> printf("%d\n", --val);<br />    return 0;<br />}</div></div><br />转自好特?<br /><a >www.hot818.net</a><br /><img src ="http://www.aygfsteel.com/huyi2006/aggbug/218014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/huyi2006/" target="_blank">allic</a> 2008-07-28 11:56 <a href="http://www.aygfsteel.com/huyi2006/archive/2008/07/28/218014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lucene倒排索引原理(? http://www.aygfsteel.com/huyi2006/archive/2008/05/10/199658.htmlallicallicSat, 10 May 2008 01:51:00 GMThttp://www.aygfsteel.com/huyi2006/archive/2008/05/10/199658.htmlhttp://www.aygfsteel.com/huyi2006/comments/199658.htmlhttp://www.aygfsteel.com/huyi2006/archive/2008/05/10/199658.html#Feedback0http://www.aygfsteel.com/huyi2006/comments/commentRss/199658.htmlhttp://www.aygfsteel.com/huyi2006/services/trackbacks/199658.html
0Q设有两文??
文章1的内容ؓQTom lives in Guangzhou,I live in Guangzhou too.
文章2的内容ؓQHe once lived in Shanghai.

1)׃lucene是基于关键词索引和查询的Q首先我们要取得q两文章的关键词,通常我们需要如下处理措?
a.我们现在有的是文章内容,即一个字W串Q我们先要找出字W串中的所有单词,卛_词。英文单词由于用I格分隔Q比较好处理。中文单词间是连在一L需要特D的分词处理?
b.文章中的”in? “once?“too”等词没有什么实际意义,中文中的“的”“是”等字通常也无具体含义Q这些不代表概念的词可以qo?
c.用户通常希望查“He”时能把含“he”,“HE”的文章也找出来Q所以所有单词需要统一大小写?
d.用户通常希望查“live”时能把含“lives”,“lived”的文章也找出来Q所以需要把“lives”,“lived”还原成“live?
e.文章中的标点W号通常不表C某U概念,也可以过滤掉
在lucene中以上措施由Analyzercd?

l过上面处理?
文章1的所有关键词为:[tom] [live] [guangzhou] [i] [live] [guangzhou]
文章2的所有关键词为:[he] [live] [shanghai]

2) 有了关键词后Q我们就可以建立倒排索引了。上面的对应关系是:“文章号”对“文章中所有关键词”。倒排索引把这个关pd过来,变成Q“关键词”对“拥有该关键词的所有文章号”。文?Q?l过倒排后变?
关键?文章?
guangzhou 1
he 2
i 1
live 1,2
shanghai 2
tom 1

通常仅知道关键词在哪些文章中出现q不够,我们q需要知道关键词在文章中出现ơ数和出现的位置Q通常有两U位|:a)字符位置Q即记录该词是文章中W几个字W(优点是关键词亮显时定位快Q;b)关键词位|,卌录该词是文章中第几个关键词(优点是节U烦引空间、词l(phaseQ查询快Q,lucene中记录的是q种位置?

加上“出现频率”和“出C|”信息后Q我们的索引l构变ؓQ?
关键?文章号[出现频率] 出现位置
guangzhou 1[2] 3Q?
he 2[1] 1
i 1[1] 4
live 1[2],2[1] 2Q?Q?
shanghai 2[1] 3
tom 1[1] 1

以live q行Z我们说明一下该l构Qlive在文?中出C2ơ,文章2中出C一ơ,它的出现位置为?,5,2”这表示什么呢Q我们需要结合文章号和出现频率来分析Q文?中出C2ơ,那么?,5”就表示live在文?中出现的两个位置Q文?中出C一ơ,剩下的?”就表示live是文?中第 2个关键字?

以上是lucene索引l构中最核心的部分。我们注意到关键字是按字W顺序排列的Qlucene没有使用B树结构)Q因此lucene可以用二元搜索算法快速定位关键词?

实现?lucene上面三列分别作典文ӞTerm DictionaryQ、频率文?frequencies)、位|文?(positions)保存。其中词典文件不仅保存有每个关键词,q保留了指向频率文g和位|文件的指针Q通过指针可以扑ֈ该关键字的频率信息和位置信息?

Lucene中用了field的概念,用于表达信息所在位|(如标题中Q文章中Qurl中)Q在建烦引中Q该field信息也记录在词典文g中,每个关键词都有一个field信息(因ؓ每个关键字一定属于一个或多个field)?

Z减小索引文g的大,Lucene对烦引还使用了压~技术。首先,对词典文件中的关键词q行了压~,关键词压~ؓ<前缀长度Q后~>Q例如:当前词ؓ“阿拉伯语”,上一个词为“阿拉伯”,那么“阿拉伯语”压~ؓ<3Q语>。其ơ大量用到的是对数字的压~,数字只保存与上一个值的差|q样可以减小数字的长度,q而减保存该数字需要的字节敎ͼ。例如当前文章号?6389Q不压羃要用3个字节保存)Q上一文章h16382Q压~后保存7Q只用一个字节)?

下面我们可以通过对该索引的查询来解释一下ؓ什么要建立索引?
假设要查询单?“live”,lucene先对词典二元查找、找到该词,通过指向频率文g的指针读出所有文章号Q然后返回结果。词兔R常非常,因而,整个q程的时间是毫秒U的?
而用普通的序匚w法Q不建烦引,而是Ҏ有文章的内容q行字符串匹配,q个q程会相当~慢Q当文章数目很大Ӟ旉往往是无法忍受的?br />

allic 2008-05-10 09:51 发表评论
]]>
新的一q就技术开发作个ȝhttp://www.aygfsteel.com/huyi2006/archive/2008/02/17/180238.htmlallicallicSun, 17 Feb 2008 02:46:00 GMThttp://www.aygfsteel.com/huyi2006/archive/2008/02/17/180238.htmlhttp://www.aygfsteel.com/huyi2006/comments/180238.htmlhttp://www.aygfsteel.com/huyi2006/archive/2008/02/17/180238.html#Feedback0http://www.aygfsteel.com/huyi2006/comments/commentRss/180238.htmlhttp://www.aygfsteel.com/huyi2006/services/trackbacks/180238.html到现在ؓ止,_略估算一下工作时间有一q半了吧Q这是加上我在校期间从事的项目时间的?br />从事的项目有
1、利用超囄GISpȝ作二ơ开发,后来Z某些原因中途离开了,但学C不少东西?br />
2、ؓq接学校评估Q用PHPl学院开发了一个内容管理系l,当时?个h开发这个系l,长了不少目开发经验,体会C团队合作的重要性。项目最后是完美的交付给学校Q初ơ体会到成功的喜悦,至今让h怀c?br />
3?007q?月䆾C武汉Q开始从事linux下的C语言开发,从此关注一些系l底层的开发以及算法,到目前应该说单就C语言开发也1q有余了吧。工作经验有Q?br />    用到各种法和数据结构,对网l上的数据进行处理。要可能的提高处理的效?br />     独自l护一?万多行代码的目Qƈ对这个项目做了重大改版,亲手写的代码量应该有5千行以上吧,q在必要时解{客L疑问?br />     对于q个目新添加的功能的设计工作都是由自己来完成,包括处理程Q数据结构,以及数据库的设计?br />     学习C丰富的linux下的开发经验及相关理论知识Q如U程~程Q内存池的运用,q程间的通信QMakefile的编写,shell的运用?br />     有了丰富的调试经验,能熟l的q用gdb对程序进行调试,调试q段错误Q多U程中的d@环,死锁问题。煅g解决问题的能力?br />    
qx也会抽出旉看了一些经典技术书c?如《Write Clean Code?br />



allic 2008-02-17 10:46 发表评论
]]>
站在巨h的肩上——公交查询系l做得差不多?/title><link>http://www.aygfsteel.com/huyi2006/archive/2006/12/06/85965.html</link><dc:creator>allic</dc:creator><author>allic</author><pubDate>Wed, 06 Dec 2006 14:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/huyi2006/archive/2006/12/06/85965.html</guid><wfw:comment>http://www.aygfsteel.com/huyi2006/comments/85965.html</wfw:comment><comments>http://www.aygfsteel.com/huyi2006/archive/2006/12/06/85965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/huyi2006/comments/commentRss/85965.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/huyi2006/services/trackbacks/85965.html</trackback:ping><description><![CDATA[   <font size="4">    <font style="BACKGROUND-COLOR: #ffffff" color="#000099">前些天在|上查些PHP开发的资料时意外的扑ֈ了一些高手写了一关于公交查询的类Q我前些阵子一直ؓq个而苦|x才用什么算法好。是采用路由法吗?那样是相当麻烦的。自已也惛_了一些解决的Ҏ。自已效率上实在是不行。都需要多ơ查询数据库Q我看了一下这个从|上高手提供的类Q然后自q写了一个添加,修改的类Q实例后做了一些测试,吉林市的几十\公交车一ơ换乘查询在最坏情况下得要上千ơ查询,在做之前自已都不敢想。看来一ơ只q行一ơ查询还是行不通的。看着那个核心法里有四层的@环,lh一U可怕的事,q有也有不可取的情况Q查了一些从吉林站到我就ȝ北华北校区的公交换乘Ҏ有几十种之多Q但是我从吉林站到学校只会坐一就行。那个站不是直接到学校的Q而是C个离学校较近的站Q从q点看,在这斚w得要一个模p的处理Q或者再增加一个功能。找一个最q的直达站点Q我惛_果把q个加了WEBGIS上可能更好处理一点,不过我自p是想把这个类l改q一下?br />        另一外事是我从|上看到一家广州的公司招Y件开发工E师Q联pM后给我打了好几次电话了,虽然现在我不知那家公司怎么P自己会不会去Q但他们那么有诚意我q是很感动的。毕竟对于前些阵子投了那么多份简历没有回音的是一份安慰?br />     贴个囄Q全是文字太单调?img height="19" src="http://www.aygfsteel.com/Emoticons/tongue_smile.gif" width="19" border="0" /><br /><p align="left"><img height="200" alt="r_3db546e6020005e6.gif" src="http://www.aygfsteel.com/images/blogjava_net/huyi2006/17681/r_3db546e6020005e6.gif" width="500" border="0" /></p><br /></font></font><img src ="http://www.aygfsteel.com/huyi2006/aggbug/85965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/huyi2006/" target="_blank">allic</a> 2006-12-06 22:39 <a href="http://www.aygfsteel.com/huyi2006/archive/2006/12/06/85965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">㰲</a>| <a href="http://" target="_blank">»</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ˳</a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ء</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˴</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ʊ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ղ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͷ</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank">ƽ½</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">С</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ư</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>