这是出于教育目的(大学作业)。
我需要用 C 语言为 Linux 编写一个客户端-服务器程序。(我已经有了那部分。客户端连接到服务器,它可以毫无问题地发送和接收文件......)。
当客户端连接到服务器时,它会向服务器发送客户端上的文件列表。所以服务器有一个它的客户端上所有文件的列表。
客户端 A 可以向服务器请求文件“test.txt”,服务器知道该文件在客户端 B 上,并且该文件应该从 B 传输到 A。我正在考虑最好的方法这。
- 从 B 接收到缓冲区,并立即将缓冲区发送()到 A?
- recv() 将 B 中的整个文件保存在服务器上,然后发送给 A?
我的程序应该支持这种行为:如果 A 向 B 询问文件,然后 C 向 B 询问文件,C 不应等到传输 A<-->B 结束。这就是我卡住的地方。
非常感谢你!!
编辑:我的服务器正在使用线程:每当有新客户端连接时,都会打开一个新线程来为其提供服务。目前,我的客户不使用线程(可以更改)。