当前位置:  技术问答>linux和unix

请教局域网传输软件编写的一些指导性意见

    来源: 互联网  发布时间:2017-03-07

    本文导语:  本帖最后由 yayu_myself 于 2010-03-04 14:18:47 编辑 这是毕业设计的题目,做个类似飞鸽传书那样的。 也是刚看完Linux程序设计,昨天实现了个命令行的版本,只是练手,用的是TCP协议传输的,发现个奇怪的问题,在本机测...

本帖最后由 yayu_myself 于 2010-03-04 14:18:47 编辑
这是毕业设计的题目,做个类似飞鸽传书那样的。

也是刚看完Linux程序设计,昨天实现了个命令行的版本,只是练手,用的是TCP协议传输的,发现个奇怪的问题,在本机测试下载了个本地文件(程序),下载之后大小跟原来的不一样,但是竟然能执行。。很诡异,有人能解答下么。。

下面是想要问的一些问题,寻求一些指导性意见:

1.既然是局域网,那应该可以搜索192.168.1.1 - 192.168.225.225这些地址的共享文件,那么当一个人上线之后,如何通知其他在线用户,我上线了。

2.通信协议应该选什么样的好,理由。

3.为了能同时和多个人传送接收文件(像迅雷多个任务同时下载),应该用多线程编程,还是socket里面那个select,再或者是多进程(感觉多进程有点奇怪)?

4.关于socket的NOBLOCK这些,需要用么,还是注意什么。

5.不太重要的界面问题,现在看了GTK了,感觉就是函数名好长,Qt还没看,不过貌似像MFC那样(虽然也没写过MFC的程序)。

谢谢各位!




|
1.既然是局域网,那应该可以搜索192.168.1.1 - 192.168.225.225这些地址的共享文件,那么当一个人上线之后,如何通知其他在线用户,我上线了。
有两种方式,一种是广播,一种是多播。多播的情况是要知道对方的IP。这些在UNIX网络编程那本书里都有说明。

2.通信协议应该选什么样的好,理由。
传输控制层协议采用TCP。因为做文件的传输不是流媒体,只要丢包,文件基本不能利用。可靠性是非常重要的。如果选UDP的话就需要自己效验了。性能也不见得好。
应用层协议,自己设计一个就行。也可以用现成的比如FTP、HTTP。不过难度就大了。

3.为了能同时和多个人传送接收文件(像迅雷多个任务同时下载),应该用多线程编程,还是socket里面那个select,再或者是多进程(感觉多进程有点奇怪)?
发送端多线程比较好,接收端可以select。

4.关于socket的NOBLOCK这些,需要用么,还是注意什么。
如果用select或者poll的话肯定需要用他。

5.不太重要的界面问题,现在看了GTK了,感觉就是函数名好长,Qt还没看,不过貌似像MFC那样(虽然也没写过MFC的程序)。 
与你想做的应用有关,现在GTK的发展前景很好。QT还是嵌入式的主流。

|
可以参考以下iptux的代码!
这个我一直在用

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3