首页 > 其他分享 >实验四 Web服务器2

实验四 Web服务器2

时间:2023-12-07 14:34:40浏览次数:33  
标签:Web socket fd server 实验 address 服务器 include

基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用Linux Socket实现:

1. Web服务器的客户端服务器,提交程序运行截图

2. 实现GET即可,请求,响应要符合HTTP协议规范

3. 服务器部署到华为云服务器,浏览器用本机的

4. 把服务器部署到试验箱。(加分项)

Web服务器代码(wbs.c)

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

#define PORT 8080

int main() {
    int server_fd, new_socket;
    struct sockaddr_in address;
    int addrlen = sizeof(address);
    char buffer[30000] = {0};
    char *hello = "HTTP/1.1 200 OK\nContent-Type: text/html\nContent-Length: 13\n\nHello world!";

    // Creating socket file descriptor
    server_fd = socket(AF_INET, SOCK_STREAM, 0);
    if (server_fd == 0) {
        perror("socket failed");
        exit(EXIT_FAILURE);
    }

    // Setting up the address structure
    address.sin_family = AF_INET;
    address.sin_addr.s_addr = INADDR_ANY;
    address.sin_port = htons(PORT);

    // Bind the socket to the address
    if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) {
        perror("bind failed");
        exit(EXIT_FAILURE);
    }

    // Listen for connections
    if (listen(server_fd, 3) < 0) {
        perror("listen");
        exit(EXIT_FAILURE);
    }

    // Accept a connection
    if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen)) < 0) {
        perror("accept");
        exit(EXIT_FAILURE);
    }

    // Read the incoming message
    read(new_socket, buffer, 30000);
    printf("%s\n", buffer);

    // Send the response
    write(new_socket, hello, strlen(hello));
    close(new_socket);

    return 0;
}

标签:Web,socket,fd,server,实验,address,服务器,include
From: https://www.cnblogs.com/20211125mjz/p/17881911.html

相关文章

  • 实验四 Web服务器1-socket编程
    基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:1.time服务器的客户端服务器,提交程序运行截图3.服务器部署到华为云服务器,客户端用Ubuntu虚拟机。time服务器代码(tms.c)#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include......
  • 实验四 Web服务器2
    基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:Web服务器的客户端服务器,提交程序运行截图实现GET即可,请求,响应要符合HTTP协议规范服务器部署到华为云服务器,浏览器用本机的把服务器部署到试验箱。(加分项)web服务器与客户端web_server.c#include<stdio.h>#inc......
  • 实验四 Web服务器1-socket编程
    基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:1.time服务器的客户端服务器,提交程序运行截图2.echo服务器的客户端服务器,提交程序运行截图,服务器把客户端传进来的内容加入“服务器进程pid你的学号姓名echo:”返回给客户端3.服务器部署到华为云服务器,客户端......
  • IntelliJ IDEA无公网远程Linux服务器环境开发(建议收藏!)
    IDEA的远程开发功能,可以将本地的编译、构建、调试、运行等工作都放在远程服务器上执行,而本地仅运行客户端软件进行常规的开发操作即可,旧版本IDEA目前不支持该功能.,本例使用的是IDEA2023.2.5版本下面介绍如何在IDEA中设置远程连接服务器开发环境并结合Cpolar内网穿透工具实现无......
  • spring 内嵌服务器相关
    Tomcat是一个Web服务器和Servlet容器,Servlet是一种用于处理HTTP请求的Java类,而Spring是一个框架,它提供了一系列模块和功能,包括Web模块,用于集成Tomcat和Servlet,以构建企业级应用程序。任何SpringWeb的entrypoint,都是servlet。自定义嵌入式容器参考:https://do......
  • 配置webDriver(火狐浏览器)
    1.查看浏览器版本号在下载火狐浏览器的驱动之前,先确认自己火狐浏览器的版本号。火狐浏览器:设置 >常规>(下拉)Firefox更新,可以看到版本号。我的浏览器版本:120.0.1(64位)     如果想下载其他火狐浏览器的版本,可以到下面这个链接:https://ftp.mo......
  • CentOS系统下配置HTTP服务器的步骤
    在CentOS系统下配置HTTP服务器涉及到一系列的步骤。以下是一个基本的步骤概述,帮助你了解如何为CentOS系统配置HTTP服务器。1. 安装HTTP服务器软件:首先,你需要在CentOS系统上安装HTTP服务器软件。常见的选择是ApacheHTTP服务器。你可以使用以下命令来安装Apache:sql复制代码sudoyum......
  • CentOS系统中设置反向代理服务器的步骤
    在CentOS系统中设置反向代理服务器可以帮助你隐藏原始服务器的细节,并提高服务器的安全性。以下是在CentOS系统中设置反向代理服务器的步骤概述:1. 安装反向代理软件:常见的反向代理软件包括Nginx和Apache。你可以选择其中之一来作为你的反向代理服务器。使用以下命令来安装Nginx或Ap......
  • 可视化学习:WebGL的基础使用
    引言继续复习可视化的学习。WebGL和其他Web端的图形系统存在很大的不同,是OpenGLES规范在浏览器的实现,它最大的不同就在于它更接近底层,可以由开发者直接操作GPU来实现绘图,性能很好,可以充分利用GPU并行计算的能力,并且WebGL还支持3D物体的渲染;WebGL最大的缺点应该就在于它的使用比......
  • vue webpack 配置babel es6转化转化es5
    1、安装相关依赖npmi-D@babel/[email protected]@babel/[email protected]@8.0.6//语法中有asyncawait等npmi-D@babel/[email protected]@babel/[email protected]、babel.config.jsmodule.exports={pres......