feitianxuxue的专栏

追求卓越,成功便会不期而至! 时间在流逝! 觉得为时已晚的时候,恰恰是最早的时候 ...

NGOD client 完成感想

NGOD client 完成感想

    今天是实习的第五天,终于把client完成了,中间遇到了很多问题,本来昨天中午就完成了,但是代码还有点问题,只能勉强完成功能,后来加了一个随机数,出现了问题,后来再怎么弄也没弄成功,就这样,弄了一天,终于大功告成。

    现在想想做client的过程,做完了感觉其实很简单的。但是前期不明白要做什么,对流程的不熟悉耽误了我很多时间,幸好有同事的及时交流。

    做client要从socket开始,从创建socket,连接服务器,向服务器发送数据,基本就是这个流程。但是发送的数据包(一大堆的字符串)要经过封装,刚开始用char *,后来用了string,把一大串的字符串经过相加,得到最后封装过的字符串。

    视频点播的流程大概是这样的:第一步:客户端发送setup消息,然后接收到服务器回复的消息;第二步:客户端发送play消息点播,收到服务器的回复消息;第三步:在客户端用视频播放软件收看一段时间;第四步:播放一段时间后,释放会话。

    我做的流程大概是这样的:

    在main()函数里面向服务端发送数据,在main()函数里面,创建socket,连接服务器之后,创建了一个线程,在这个线程中用个while(1)死循环不停的接收客户端发送的数据。向服务器发送setup消息后,我在main()函数中让其sleep()几秒钟;然后开始发送play消息,发送完之后,再让其sleep()一段时间(这个时间用于播放视频);最后,发送release消息,收到release回复的消息。在while死循环中,当recv的返回值为0的时候,输出“正常关闭连接”,然后用break跳出循环。

    总结:其中用到了基本的socket编程,用到了基本的多线程,对于字符串的封装用到了string类。

    在写代码的过程中很快,但是慢的地方在于出现了错误的时候,这个调试找错误真是麻烦,一方面是自己没用linuxKDevelop调试工具,每当出现错误的时候都是用cout进行输出。另一方面是自己对linux环境太不熟悉了。

    代码中出现了错误,有的时候一个小小的错误使得我弄了半天,今天本来把代码都弄好了,没问题了,后来为了再优化下,不小心删除了一段字符串,导致最后在release的时候,收不到回复的数据,最后,还真是一点点的找到了问题的所在,所以调试发现错误的过程一定是沉着冷静的过程。

    我也不知道做这个东西我做的是慢还是快,不过都是自己一步步做过来的,我想也只有自己一步步做才会成长吧。

    公司下班后,没几个人了,过几天我得开始写毕设了,毕竟这也是个大事,写博客估计也没什么时间了,但是有时间的时候就写点东西,我想总算是好的。偌大的大厅,没几个人,听着机子嗡嗡的声音,倒也感觉挺惬意的。反正住的地方距离公司挺近的,回去也没事,在公司呆着总比回去要强的多。

阅读更多
个人分类: 个人感悟
想对作者说点什么? 我来说一句

NGOD S6协议

2013年09月02日 3.63MB 下载

NGOD 3.0 注册和发现接口 中译版

2013年01月08日 1.21MB 下载

Comcast:NGOD2.0总体架构中文版

2011年03月30日 215KB 下载

GEN_Overall Architecture (NGOD 2.0)

2011年03月30日 691KB 下载

monngoDB使用

2017年12月26日 655KB 下载

没有更多推荐了,返回首页

不良信息举报

NGOD client 完成感想

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭