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

yayu_myself 2010-03-04 02:17:45
这是毕业设计的题目,做个类似飞鸽传书那样的。

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

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

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

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

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

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

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

谢谢各位!



...全文
101 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gfr1339934402 2012-08-01
  • 打赏
  • 举报
回复
噢,好错综复杂的说。。。当年小高考时的计算机考试和大一的计算机一级测试,遇到这种有关地址的题目就头大。。。
heishiJJ 2012-04-05
  • 打赏
  • 举报
回复
我正好也在写类似的东东,不过这只是我的其中一个小功能,我用的是Qt+ linux socket + posix pthread实现的,目前已经可以文件互传!!并且是CS结构的!!
yayu_myself 2010-03-05
  • 打赏
  • 举报
回复
谢谢lihualoveyou大牛。。我再想想。。看看还有什么问题。。
yunshishenlou 2010-03-04
  • 打赏
  • 举报
回复
我也正开始学网络编程。
我们两可以交流一下,我qq412124964
KimenWu 2010-03-04
  • 打赏
  • 举报
回复
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还是嵌入式的主流。
yayu_myself 2010-03-04
  • 打赏
  • 举报
回复
呵呵。。谢谢。不过我新手。。如果能获得一些语言性文字的指导就更好些。。
leemeng0x61 2010-03-04
  • 打赏
  • 举报
回复
引用 2 楼 leaveboy 的回复:
可以参考以下iptux的代码!
这个我一直在用

可以参考以下iptux的源码
leemeng0x61 2010-03-04
  • 打赏
  • 举报
回复
可以参考以下iptux的代码!
这个我一直在用
yayu_myself 2010-03-04
  • 打赏
  • 举报
回复
啊啊。。没有大牛在了么。。

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧