TCP和UDP是传输层中定义的两种传输协议。在网络编程中,第一个步骤就是为应用程序选择TCP还是UDP传输数据。
它们的区别简单说来就是:
TCP保证数据全部送到,不会丢失,但信息传输较慢。UDP不保证数据全部送到,但传输速度快。
回到上次的那个故事,嫖客完事之后付钱给妓女。于是妓女清点钞票,保证拿到了全额的服务费用。这,就是TCP。后来,妓女由于技巧高超,找她服务的嫖客越来越多,可以说是应接不暇。忙于接客的她头昏脑胀,无暇顾及每次是否都拿到了全部的费用,反正多赚一笔是一笔。等到她发觉钱收少了时,才再去找嫖客要。这,就是UDP。
-
TCP和UDP:妓女和嫖客的故事(二)
post by idnemo / 2007-11-19 21:37 Monday -
select模型:妓女和嫖客的故事(一)
post by idnemo / 2007-11-12 21:05 Mondaywinsock API中的两个函数recv()和send()都是阻塞式的,这种通信效率是很低的。
举这么一个例子吧,从前有一个妓女和一个嫖客,这个嫖客呢每天都要逛窑子和那个妓女OOXX。所以那个妓女每天就在门口等待嫖客的到来,若嫖客没来,她也一直傻等在那里。即便有其他嫖客想来,妓女也不带理的。
这就是阻塞式的方式,阻塞式的意思就是函数若没有执行成功,则不返回。这是大多数函数的做法,但是对于通信中的recv和send来说,这种方法是十分低效的,因为这两个函数会使得整个线程都阻塞住,无法做其他事情。就好比那个傻等嫖客的妓女一样。
那么为什么通信程序要使用I/O模型?I/O模型就是应用程序提供一个缓冲区,在缓冲区进行收发数据。如果函数recv和send没有执行成功,则函数立即返回,线程可以先做其他的事情。等下次有数据要收或要发时,再执行函数。这样的函数就是非阻塞式的。
也就是说,当那个妓女看到嫖客没有来时,她可以采取一些行动,来增加她的接客效率。这,就是I/O模型。微软为了提高妓女的接客效率,一共提供了5种I/O模型。附件下载:
comSocketLib.rar 2.13MB -
本周高挂免战牌
post by idnemo / 2007-11-9 23:43 Friday今天晚上和几个在上海的大学同学聚了一次。
明后两天要加班做一个检测游戏客户端发送数据的工具。等这个工具做完了,我就把做这个工具时,自己写的一个通信库开源放在blog上。
这一周的网络编程暂停,有时间补上。 -
网络编程第一步
post by idnemo / 2007-11-2 20:59 Friday网络编程对于初学者来说,确实是很头疼的,主要是相关的资料和书籍相比3D编程来说要少很多。
对于windows下的网络开发来说,MSDN永远是首要的参考资料。至于书籍,只有一本《windows网络编程技术》算是权威书籍,其余多为烂书,特别是国人写的服务器端编程的书籍更是烂到极点。比如《VisualC++ 网络游戏建模与实现》中的socket编程部分则是直接从《windows网络编程技术》里摘抄内容和代码,换个名字就成了作者,实在是让人恶心到极点。
《windows网络编程技术》这本书已经绝版,但是网上可以下载得到PDF版的。google一下不难找到,好像CSDN也有。因为PDF格式较大不好上传,所以这里就只传这本书的代码了。学编程,最快的办法就是看好的代码。附件下载:
windows网络编程技术.rar 1.24MB -
做一名游戏程序员,你准备好了吗?
post by idnemo / 2007-10-26 22:23 Friday我进游戏公司的经历出奇的顺利。没有别人介绍,自己投简历,第一次面试,东星就将我招了进去。而且效率出奇的高,面试完20分钟后就通知我第二天上班。现在想来,一年多的游戏编程路,能这么顺利的找到工作,还是有些心得的,这里就想开始说说这个吧:如何成为一名游戏程序员。
网上可以找到无数成为为新手所写的成为游戏程序员所必须要的技能、所需要读的书之类的。我基本也是照样这样的路子走过来的,选择一门语言(C++)->选择平台(win32)->选择图形SDK(DX)。这是做电脑游戏的一条最普通的道路,如果你想做手机游戏就选Java。附件下载:
足球.part2.rar 1.06MB -
恩,新的BLOG内容
post by idnemo / 2007-10-26 22:18 FridayBLOG写了一段时间了,说的大多是自己乱七八糟的一些事。可能除了朋友和同学会偶尔光顾一下,估计也不太会有人看。所以从今天开始,打算写一些对别人有用的东西。我会系统的将自己每周、每个月所学以及编程的心得写出来发在BLOG上。1,也许可以增加点击量。2,也是对自己所学的一种复习。3,BLOG是大学同学的一番心血,既然开了,我就得好好写一写。
进东星已经快3个月,试用期一过可能就要进入公司的刚刚开始的神秘项目中了。公司因为是做游戏代工的,有些项目的计划是必须保密的,我不会过多涉及项目中的事,所以以后BLOG的内容以游戏编程方面为主。今天是第一次,所以就写写自己是怎么进公司的吧。附件中是大学里做的demo,第一个分包。
附件下载:
足球.part1.rar 1.43MB -
夜,真相
post by idnemo / 2007-10-19 20:19 Friday今天下班回来的路上抬头看了一阵天空,上海的夜空是如此的单调,除了月亮只能看见最亮的金星。记得以前在云大的时候,时不时还会拿望远镜看看星空。学校虽然是在昆明市区,天晴的时候整个大熊星座还是清晰可见。上海这些年虽说绿化搞得还可以,但是环境的污染不是喝个血瓶就能回复的。
想起前些天看过的一个电影,美国前副总统戈尔主演的纪录片《难以忽视的真相》,主要说的就是现在全球二氧化碳排放量的上升,导致全球变暖,气候异常,以及冰川融化带来的海平面升高。里面提到了如果二氧化碳的增加量以现在这个速度递增,那么50年后全球有很大一部地区都将被海水淹没,这些地区中就包括上海、北京这些海拔较低的城市。我觉得这个事实应该不会假,不过我相信人都是被逼出来的,或者说人类都是被逼出来的,解决办法也迟早会有。至于我,每天座地铁,再环保不过的交通工具了,所以觉得自己已经够环保了。万一哪天人类真被大自然给灭了,反正也不是我的错。而且我本人对车没什么兴趣。 -
《美国美人》、《搏击俱乐部》
post by idnemo / 2007-10-12 20:44 Friday开BLOG有段时间了,居然没有说过电影。实际上,游戏对于我来说既是娱乐,也是工作。而电影对我的影响,除了娱乐之外,还影响着我的人生观。大学时期不咋个爱学习,所以感觉自己也是看了很多很多电影的。一开始也不会选择看什么电影,所以也看了不少烂电影,看完了直叫人想骂娘。后来知道有个叫imdb的评分系统,是看完这个电影的人去投的票,至少都有几万的票,所以显得客观一点。IMDB评分在7分以上的电影基本上就算是优秀的电影了,8分以上可谓是经典,9分以上只有3部。
在我所看过的电影中,对我的人生产生最大影响的两部电影是:《美国美人》和《搏击俱乐部》。
《美国美人》:美是一种触动。当你回忆起以前发生的一切,当那些生活中美的回忆像雨滴一样落在你的身上时,也许你就会对自己的生命充满了感激,即便它愚蠢而渺小。
《搏击俱乐部》:若能一切随他去,便是世间自在人。原话是Loseing all hope was freedom。束缚你的永远是你自己。
