【发布时间】:2014-06-25 12:16:55
【问题描述】:
此时我正在处理我的编程项目,我需要一个使用 C 创建的服务器-客户端协议,在该协议上:
- 服务器只是侦听来自其客户端的请求,它只会在收到请求后做出反应。
- 客户端使用网络浏览器发出请求。
- 在 URL 字段(在浏览器中),用户必须输入“get”,然后输入所需文件的名称。
- 服务器将文件作为 http 格式的字符串发送。
谢谢!
#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
int main(int argc, char** argv) {
struct servent* port;
port = getservbyname("cpp_java","tcp");
printf("Port: %i",port->s_port);
int descriptor;
descriptor = socket (AF_INET,SOCK_STREAM,0);
if(descriptor == -1){
printf("Error\n");
}
struct sockaddr_in direc;
direc.sin_family = AF_INET;
direc.sin_port = port->s_port;
direc.sin_addr.s_addr = INADDR_ANY;
if(bind(descriptor,(struct sockaddr *)&direc, sizeof(direc)) == -1){
printf("Error\n");
}
if(listen(descriptor,1) == -1){
printf("Error\n");
}
struct sockaddr client;
int descriptor_client;
int longi;
descriptor_client = accept (descriptor, &client, &longi);
if(descriptor_client == -1){
printf("Error\n");
}
return (EXIT_SUCCESS);
}
这是我到目前为止所做的代码,我已经阅读了很多问题和答案,但我不知道如何为二进制文件调整 HTTP 标头并使用任何浏览器下载它。提前致谢。
注意:如果您能告诉我如何使用 GET 请求资源,我也将不胜感激。
【问题讨论】:
标签: c file http request transfer