问题描述
我已经用 C 编写了一个 HTTP/1.0 服务器。现在我也希望能够为 HTTP/1.1 请求提供服务。 我的 HTTP/1.0 实现如下:-(请注意,我特意删除了代码的错误处理部分。)
while(1) {
clientSocket = accept(serverSocket,(struct sockaddr *) &clientName,&clientNameLen);
pthread_create(&newThread,NULL,serveRequest,(void *) clientSocket);
}
void* serveRequest(void* c){
char buffer[HTTP_Request_SIZE];
int clientSocket = (int) c;
int n = recv(clientSocket,&buffer,HTTP_Request_SIZE,0);
struct http_message request;
int status = http_parser(buffer,&request,HTTP_Request);
char response[HTTP_RESPONSE_SIZE];
Response responseStruct = generateResponse(&request,status);
unsigned int responseLength = responsetoString(&responseStruct,response);
send(clientSocket,response,responseLength*sizeof(char),0);
close(clientSocket);
}
现在我想将其转换为 HTTP/1.1。我搜索并发现,在 HTTP/1.1 中,我们不会每次都创建新连接,而是在已打开的连接上接收和发送数据。这实际上是如何实施的?上面的代码会如何变化? 我使用 Firefox 作为我的网络客户端。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)