免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1625 | 回复: 5
打印 上一主题 下一主题

向各位高手求救!急!用SELECT(多路转接)如何并行ftp! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-14 21:47 |只看该作者 |倒序浏览
各位高手,小弟先行磕谢了,因小弟初学UNIX编程,遇到大作业如下:
要求:
1、        SERVER+CLIENT
2、        在SERVER端创建大小为30MB的文件,分别在SERVER端采用读文件和传输文件串行操作以及并行操作两种方式进行文件传输服务。
3、        CLIENT端:MYFTP 222.201.186.148 25 与SERVER建立联系,并获得文件信息。在CLIENT端分别采用接收数据和文件写串行操作以及并行操作(并行操作要用select实现)两种方式进行文件获取。
4、        比较上述两种情况下系统I/O性能的变化。

      还要求限制至多8人登陆,我因没经验,做了几天只会做单进程的SERVER和CLIENT文件上传下载。想到用select实现并行操作,若fork一个子进程做socket的select,一个子进程做本地文件的select又不知如何把两者结合起来。想用数组保存各文件描述符,然后FD_SET。但如何把本地read file和send到相应的socket就没头绪。
      请各位务必帮忙,若明天晚上作不出来,就铁定不及格了。请问各位有什么办法或参考源程序务必帮一下忙。不胜感激!明天还要考数据库,先行告退。

论坛徽章:
0
2 [报告]
发表于 2005-01-14 22:47 |只看该作者

向各位高手求救!急!用SELECT(多路转接)如何并行ftp!

不用select,完全没有必要。只用多进程。
socket监听,一个请求进来,就fork一个子进程传文件,父进程继续监听。

client端也是这样,一个进程接收数据放入缓冲区,一个进程从缓冲区里读数据写文件。注意加锁,这里是最基本的“生产者消费者”问题。

源代码没有。说到这个地步再做不出,兄弟不及格也罢:)

论坛徽章:
0
3 [报告]
发表于 2005-01-15 08:39 |只看该作者

向各位高手求救!急!用SELECT(多路转接)如何并行ftp!

非常感谢“精简指令”的指导,是我没说清楚,本实验要求不用多进程而用select实现(说是防止fork出子进程过多而出现僵死子进程和消耗过多资源),
非常感谢提醒用共享内存方式使数据缓存,万分感谢!

论坛徽章:
0
4 [报告]
发表于 2005-01-15 11:29 |只看该作者

向各位高手求救!急!用SELECT(多路转接)如何并行ftp!

那就用多线程吧。

论坛徽章:
0
5 [报告]
发表于 2005-01-15 15:50 |只看该作者

向各位高手求救!急!用SELECT(多路转接)如何并行ftp!

那真的只能用多线程了。

假如是单线程+select,那么在传文件的过程中线程始终是阻塞的,怎样响应其他的用户请求呢?除非使用异步IO。

说点题外话,我真的看不出来fork8个进程,会耗费多少资源。也看不出来什么样的服务器承受不了这种耗费:)

论坛徽章:
0
6 [报告]
发表于 2005-01-15 16:40 |只看该作者

向各位高手求救!急!用SELECT(多路转接)如何并行ftp!

现在的学校是应试教育,老师不管你做得有多好,只要不按照他的要求做,只要不符合标准答案,结果就是零分!
学生的活力和创造性就是这样被扼杀了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP