关闭

NGOD client 完成感想

标签: 服务器socketstringlinux多线程编程
1087人阅读 评论(6) 收藏 举报
分类:

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的时候,收不到回复的数据,最后,还真是一点点的找到了问题的所在,所以调试发现错误的过程一定是沉着冷静的过程。

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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:443443次
    • 积分:4365
    • 等级:
    • 排名:第6855名
    • 原创:71篇
    • 转载:1篇
    • 译文:0篇
    • 评论:315条
    最新评论