以文本方式查看主题 - W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL (http://bbs.xml.org.cn/index.asp) -- 『 网友互助 』 (http://bbs.xml.org.cn/list.asp?boardid=76) ---- 请教~写一个文件共享的程序(file sharing application)的相关知识 (http://bbs.xml.org.cn/dispbbs.asp?boardid=76&rootid=&id=59989) |
-- 作者:shinjisouji -- 发布时间:3/14/2008 10:54:00 PM -- 请教~写一个文件共享的程序(file sharing application)的相关知识 请教一下如何用数据与网络传输的相关知识写一个文件共享的程序(file sharing application)。 基本要求是: 这个程序必须用到socket programming(很抱歉我还不知道中文怎么说),并且只能用C语言编写。 我现在的主要问题是:我还是个C语言新手,连文件处理都不是很熟悉;socket programming做过一些练习,只知道UDP和TCP,会用TCP编写很简单的客户端和服务器端一替一次轮流“聊天”的程序(也就是将用户输入的数字或字符串发送到另一台电脑的程序),但是这个文件共享的编程仍然不知如何下手。 问题1. 我想分别写TCP的客户端和服务器端的程序,客户端先后调用socket(), connect(), 服务器端调用socket(), bind(), listen(), accept(); 之后服务器在accept成功之后向客户端发送一个“请输入密码”这样的请求,然后客户端将用户输入的密码发给服务器端。假设用户3次输入密码不正确,客户端将关闭连接(就是调用closesocket())。请问是这样的思路吗?因为我只会这一种编程的方法…… 2 是否应在客户端写一个for或者while循环,循环3次都接到服务器端“密码不正确”的信息之后跳出,接着关闭连接?而服务器端检查密码是否只需一个简单的if判断?我想知道通过密码接入共享的目录这个操作是否有特定的函数,算法……来实现,而并不是想我想的这么简单。 3 我不知道如何让A的朋友B浏览A的共享目录下的文件名和文件长度。我完全不知道怎么用C写一个找到某个磁盘,并显示某个目录(比如D:/My Homework/Math Homework)下所有文件的文件名和文件长的程序。我只知道用Windows的“命令提示符”里显示某个目录下所有文件的命令行是dir。另外,我现在对文件的理解仍然只是文本文档(.txt),如果这个文件是.mp3怎么办?我完全不知道怎么把一个存在磁盘里文件发送出去……文件这个方面有很多概念不清,请大家可不可以告诉我这涉及哪方面的知识,我去找书看。指点一下应该怎么补这些知识更好^^ 4 当B下载完文件想要退出时,是否应发给A一个信号,接收A的回应后关掉自己这边的连接(调用closesocket());A这边在向B发出“收到”的信号之后关掉自己这边的连接? 5 我不明白如何让两边都成功退出这个文件共享程序。是否理论上服务器端(A这边)应该保持这个程序永远运行,随时等待客户端(比如B)发送请求;而B端应该有一个安全退出这个程序的方法?我不知道怎么编写让B端“退出”的程序。 6 暂时就这么多问题。因为还没有开始写程序,所以还想不到会面临什么问题。如果有编过类似程序的达人还请不吝赐教,告诉我一些经验,非常感谢!! 我知道问这么大的问题很欠抽…总之,不论如何,还是请大家帮帮忙,稍微指点一两处都好。我邮箱shijisouji@gmail.com, 在线等,非常感谢!! |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |