IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 深入理解计算机系统(CSAPP)中TINY Web服务器搭建运行 -> 正文阅读

[系统运维]深入理解计算机系统(CSAPP)中TINY Web服务器搭建运行

搭建环境

在电脑(Windows)上下载虚拟机程序,安装ubuntu,具体教程网上一搜就有,这里不再细讲

程序编译运行

程序下载

CSAPP的代码位于http://csapp.cs.cmu.edu/public/code.html,在这里面找到tiny.c、csapp.h、csapp.c和adder.c
可以直接在Ubuntu里的火狐浏览器里输入网址下载,或者在Windows里下载好,通过虚拟机共享文件夹拷贝过去
在这里插入图片描述

程序文件夹

在Ubuntu中新建一个空文件夹TINY_Test,在其内部新建空文件夹cgi-bin
将tiny.c、csapp.c和csapp.h拷贝到TINY_Test内,将adder.c拷贝到cgi-bin内

程序编译

进入TINY_Test文件夹,打开csapp.h文件,在最后一句#endif /* CSAPP_H */前添加#include"csapp.c",然后保存文件,然后打开tiny.c文件,做如下更改后保存

listenfd = Open_listenfd(argv[1]);
//找到上面代码所在的一行,大概在30~35行之间,将其改为
listenfd = Open_listenfd(atoi(argv[1]));

右键选择在终端中打开,输入命令

gcc -O1 tiny.c csapp.c -o tiny -lpthread 

进入cgi-bin文件夹,右键选择在终端中打开,输入命令

gcc -O1 adder.c -o adder

注:若还没有安装gcc,可以网上搜索ubuntu中如何安装gcc

程序运行

进入TINY_Test文件夹,右键选择在终端中打开,输入命令,其中2000是监听的端口号,可以自己取,在1024~49151以内都行

./tiny 2000

至此,该服务器程序就开始运行了,并监听2000号端口,等待外部的请求

程序测试

下载一张图片放在TINY_Test文件夹内,改个简短的名字test.jpg
在TINY_Test文件夹内新建一个html文件,右键选择在终端中打开,输入touch home.html即可,打开html文件,输入如下内容后保存

<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Welcome to Tiny Web Server</h1>
</body>
</html>

浏览器测试

使用Ubuntu内的火狐浏览器,其中localhost就是只本机,2000是指端口号
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
使用windows里的浏览器,自己的电脑或者别人的电脑都行,192.168.76.128是我的电脑上虚拟机的IP地址,可以网上搜索如何查询虚拟机的IP地址
在这里插入图片描述在这里插入图片描述

telnet测试

使用Ubuntu里的telnet工具,使用HTTP请求
Ubuntu里Ctrl+Shift+N新建一个终端窗口,输入红框内的telnet命令后系统会显示连接成功,然后输入蓝框内的HTTP请求报文,按两次回车,会收到绿框内的HTTP响应报文
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:29:39  更:2021-08-20 15:31:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/1 22:04:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码