gpt4 book ai didi

C 代码,简单的 Web 服务器(代码 OK)

转载 作者:太空宇宙 更新时间:2023-11-04 11:03:29 30 4
gpt4 key购买 nike

我的网络服务器代码有问题

#include<netinet/in.h>    
#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<unistd.h>

int main() {
int create_socket, new_socket;
socklen_t addrlen;
int bufsize = 1024;
char *buffer = malloc(bufsize);
struct sockaddr_in address;

if ((create_socket = socket(AF_INET, SOCK_STREAM, 0)) > 0){
printf("The socket was created\n");
}

address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(15000);

if (bind(create_socket, (struct sockaddr *) &address, sizeof(address)) == 0){
printf("Binding Socket\n");
}


while (1) {
if (listen(create_socket, 10) < 0) {
perror("server: listen");
exit(1);
}

if ((new_socket = accept(create_socket, (struct sockaddr *) &address, &addrlen)) < 0) {
perror("server: accept");
exit(1);
}

if (new_socket > 0){
printf("The Client is connected...\n");
}

recv(new_socket, buffer, bufsize, 0);
printf("%s\n", buffer);
write(new_socket, "hello world\n", 12);
close(new_socket);
}
close(create_socket);
return 0;
}

这是创建一个 Web 服务器的小代码,该服务器在端口 15000 上回复“hello wordl”。现在我希望我的服务器在请求(例如)“http://127.0.0.1:15000/luigi”时回复文本“luigi”,即“/”之后的短语.谢谢!

最佳答案

recv函数之后,你会得到类似

的东西
GET /luigi HTTP/1.1

buffer中。这是浏览器发送的请求。
GET 之后的文本是您的基本地址 (127.0.0.1:15000) 的相对 URL。现在你可以解析缓冲区并做任何你想做的事了。你可以去http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html了解更多详情。

关于C 代码,简单的 Web 服务器(代码 OK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26141258/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com