C语言中的客户机-服务器文件传输

C语言中的客户机-服务器文件传输,c,client,server,C,Client,Server,我正在用C开发一个客户机-服务器文件传输程序,在该程序中,我需要找到保存在服务器目录中的文件,并发送特定客户机请求的文件。有人能帮我一下命令是什么或者程序应该是什么吗? 特别是如何在服务器目录中从客户端搜索文件字符串recvd并发送到客户端 我的程序的重点是只使用TCP的服务器编程部分。文件搜索部分对我来说特别重要,我没有得到它:假设客户希望下载一个文件名字符串,该字符串以前存储在服务器上的目录中,例如:home/server1/client1/filename;服务器搜索该文件并将其发送到C中

我正在用C开发一个客户机-服务器文件传输程序,在该程序中,我需要找到保存在服务器目录中的文件,并发送特定客户机请求的文件。有人能帮我一下命令是什么或者程序应该是什么吗? 特别是如何在服务器目录中从客户端搜索文件字符串recvd并发送到客户端

我的程序的重点是只使用TCP的服务器编程部分。文件搜索部分对我来说特别重要,我没有得到它:假设客户希望下载一个文件名字符串,该字符串以前存储在服务器上的目录中,例如:home/server1/client1/filename;服务器搜索该文件并将其发送到C中的client1
非常感谢。

首先,为了安全起见,只允许将“public”目录中的文件传输到客户端。感谢回复;我的程序的重点是只使用TCP的服务器编程部分。文件搜索部分对我来说特别重要,我没有得到它:假设客户希望下载一个文件名字符串,该字符串以前存储在服务器上的目录中,例如:home/server1/client1/filename;服务器搜索该文件并将其发送到C中的client1。fopen语句将处理该文件,并让代码知道该文件是否不存在。然而这将允许传输任何客户端文件,包括html、php等文件,这是一个严重的安全漏洞。
There are several file transfer protocols already available.  
I would suggest TFTP (Trivial File Transfer Protocol) 
as it is (relatively) simple to implement 
and robust enough to get the job done, even in noisy environments.  
It is a 'lock step' protocol, 
where the sender invokes a timeout when a block is sent, 
if the timeout occurs without receiving an ack/blocknum response from the receiver,
then the same block is re-sent.
checksums are used by the receiver to validate each block
The details are in: <http://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol>