【发布时间】:2012-12-21 08:39:23
【问题描述】:
这是出于教育目的(大学作业)。
我需要用 C 语言为 Linux 编写一个客户端-服务器程序。 (我已经有了那个部分。客户端连接到服务器,它可以毫无问题地发送和接收文件......)。
当客户端连接到服务器时,它会向服务器发送客户端上的文件列表。所以服务器有一个它的客户端上所有文件的列表。
客户端 A 可以向服务器请求文件“test.txt”,服务器知道该文件在客户端 B 上,该文件应该从 B 传输到 A。我正在考虑最好的方法这样做的方法。
- 从 B 接收到缓冲区,并立即将缓冲区发送()到 A?
- recv() 将 B 中的整个文件保存在服务器上,然后发送 给 A?
我的程序应该支持这种行为: 如果 A 向 B 请求文件,然后 C 向 B 请求文件,则 C 不应等到传输 AB 结束。这就是我卡住的地方。
非常感谢!!
编辑:我的服务器正在使用线程:每当有新客户端连接时,都会打开一个新线程来为其提供服务。目前,我的客户端不使用线程(可以更改)。
【问题讨论】:
-
那么,到目前为止,您做了什么来尝试解决问题。请记住,我们不是来为您编写代码或解决您所有的学校作业的。您必须完成工作 - 这就是您学习的方式!
标签: c tcp pthreads client-server