这几天在忙着做课程设计

          最近在研究windows socket编程。之所以研究它是因为今年的课程设计老师让做一个基于windows的程序。刚开始准备写局域网管理软件,里边就有局域网聊天的功能。写着写着觉得聊天挺有意思的,何不写一个仿照qq的聊天程序。前前后后写了3个,先是基于TCP转发的,再是试验下udp,最后才是现在的样子:服务器跟客户端之间是用TCP,而客户端之间是基于UDP的。写到一半才知道qq的好像都是基于udp的。没办法,都写到一半的也没法改了。到今天为止,基本的聊天功能跟界面都已成型,还差一个文件传输和连接数据库。期间遇到了很多拦路虎,毕竟这学期才开了网络课,都是一些原理的东西,没有涉及到实际使用。走了不少弯路,弄得我看到那个烂摊子就恶心,有过要放弃的念头,但是还是坚持下来了。在这个课程设计中我觉得有两个收获,由于对MFC的原理的理解不清楚,一层又一层的对话框,很容易让人犯晕,通过这个课设让我更清晰的理解了MFC的消息机制,以及各种对话框之间的层次关系。再者对socket有个初步的认识,TCP,UDP,阻塞,非阻塞模式。。。。。从开始写到现在大概二十天了。从对socket一瞧不通到现在有个初步的认识也算是个进步吧。在写第一个基于TCP服务器转发的实例时,试验了很多客户端同时连接服务器的情况,不知是什么原因导致服务器负载过重,消息转发速度太慢,期间采用过并发处理和线程池机制,试图解决服务器负载过重的情况,无奈结果不如人意。windows核心编程里有关于同步和异步I/O的介绍,我猜测估计这里是采用的同步IO的模式,导致线程等待一个有一个IO执行完成才导致这种情况的发生。这只是猜测具体的原因等我了解了MFC和socket底层之后才能知道。现在在这儿做个记号,以后懂了再来回答这个问题。

          写程序的时候总是一坐好几天,到头来遇到了拦路虎还没有什么实质性的进展,这时就会觉得挺失落的。还不如看书来的实在。虽说实践很重要,但是我认为足够的理论储备仍然是必须的。脑子里没有什么概念,只是一味的这儿弄弄那摸摸,效率很是低。现在是因为有了课程设计,花好多时间放在调程序上,过了这一阵以后就不能这样了。白天看理论晚上来实践,最好能把白天看过的东西真正的用到程序中去,这样才不会是纸上谈兵,印象更深理解的更深刻。

现在才刚刚入门,知识储备库里还是空空如也,不懂得东西太多,没听过的东西遍地都是,慢慢来吧,这东西急也是没有用的,只要每天都在学习新东西,每时每刻都有进步就足够了,三年五年十年八载下来也会积累了不少。有时候觉得自己挺笨的,东西学的太慢。这又能有什么办法的,只能拿勤来补拙吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值