实现Linux系统下简单web服务器源代码的测试
时间: 2024-03-15 19:47:17 浏览: 18
好的,以下是一个简单的基于Linux系统的web服务器源代码,你可以在本地进行测试:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define MAXBUF 1024
#define PORT 8080
int main()
{
int sockfd, clientfd;
struct sockaddr_in addr, client_addr;
char buf[MAXBUF];
int len = sizeof(client_addr);
int n;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("socket");
exit(1);
}
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = htons(PORT);
if (bind(sockfd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
perror("bind");
exit(1);
}
if (listen(sockfd, 5) < 0) {
perror("listen");
exit(1);
}
while (1) {
clientfd = accept(sockfd, (struct sockaddr *)&client_addr, &len);
if (clientfd < 0) {
perror("accept");
exit(1);
}
n = recv(clientfd, buf, MAXBUF, 0);
if (n < 0) {
perror("recv");
exit(1);
}
printf("%s", buf);
char *response = "HTTP/1.1 200 OK\r\nContent-Length: 12\r\n\r\nHello World!";
send(clientfd, response, strlen(response), 0);
close(clientfd);
}
close(sockfd);
return 0;
}
```
以上代码实现了一个简单的web服务器,它会监听本地的8080端口,并在接收到客户端请求后,返回一个Hello World!的响应。你可以使用curl或者浏览器测试其功能,例如:
```
curl http://localhost:8080/
```
如果一切正常,你应该会看到以下响应:
```
Hello World!
```