我正在编写一个服务器,在GET请求中将其目录内容输出到客户端。
如何实现参数argv [2]为所有客户端指定根目录,以便当客户端请求"GET /"
或"GET /file"
时,服务器会将其视为根目录?
例如:
./TCPserver 5000 /home/user
然后是客户端:
./TCPclient localhost 5000 "GET /"
./TCPclient localhost 5000 "GET /(fileinHome)"
这是我所拥有的,但显然这并不包括客户端尝试访问伪根目录中的文件的情况
if (strcmp(real_path, "/"))
{
DIR *dirp = opendir(argv2);
if (dirp == 0)
{ //dup sock into stderr
close(2);
dup(clientSocket);
perror(real_path);
exit(EXIT_FAILURE);
}
struct dirent *dirEntry;
while ((dirEntry = readdir(dirp)) != NULL)
{
if (dirEntry->d_name[0] != '.')
{
strcpy(buffer, dirEntry->d_name);
}
} //end while
closedir(dirp);
} //end if
}