Socket Programming
0.环境配置配置docker 安装docker 12sudo apt updatesudo apt install docker.io 启动docker服务 1sudo systemctl start docker 验证安装成功 123sudo docker pull docker.m.doacloud.io/hello-worldsudo docker run hello-worldsudo docker images 输出分别如下: 1234567891011121314151617181920212223242526272829303132333435┌──(qlc㉿kali)-[~]└─$ sudo docker pull docker.m.daocloud.io/hello-world Using default tag: latestlatest: Pulling from hello-worldDigest: sha256:452a468a4bf985040037cb6d5392410206e47db9bf5b7278d281f94d1c2d0931...
并行计算实验二
实验操作 登录集群 12ssh -p 9922 用户名@172.28.9.54cd data 创建作业文件 12cat > sparse.cppcat > sparse.pbs 分别粘贴作业代码 123456789#include <iostream>#include <fstream>#include <cmath>#include <pthread.h>#include <sys/time.h>#include <cstdlib>using namespace std; 12345678#! /bin/bash#PBS -N sparse#PBS -l nodes=1:ppn=4#PBS -j oecd $PBS_O_WORKDIRprocs=$(cat $PBS_NODEFILE | wc -l)./sparse.o matrix.txt vector.txt $procs &> run.log 编译 1g++ -pthread -o sparse.o spars...
并行计算实验一
综述 实验名称与内容: 多线程计算正弦值 方法:利用正弦函数的泰勒级数展开式计算结果,要求使用Pthread并行化实现,输入包含弧度值、展开式的项数和线程数 公式懒得粘贴了 实验环境的配置参数 CPU:2Intel(R) Xeon(R) Gold 5218 内存:256G 硬盘:3600G,使用RAID5磁盘阵列技术,可用容量为1.2T 操作系统:CentOS7 编译环境:GCC4.8.5、OpenMPI 1.10.7 实验题目问题分析 密集型数值计算问题,可将数据划分并行 将N项任务平均分配给多个线程,每个线程按固定步长跳跃式处理项 每个线程先计算局部和val,最后通过互斥锁合并到res(自己加上) 实验报告具体填法建议用一下agent 方案设计 大概思路:通过命令行输入实验所需参数,再在主线程中解析参数并创建子线程,在子线程中进行局部计算,最后将结果累加到全局共享变量,主线程输出结果res 流程图:此处略 伪代码:把.cpp .pbs丢给agent分析得出(记得粘图片) 实现方法: cal_sin.cpp(粘图片) cal_sin.pbs(粘图片) 申请1个节点 ...
proxy_lab
仓库地址 本实验分为三个部分:设置代理、并发、缓存准备部分:安装netstat工具 1sudo apt install net-tools 1. 实现一个顺序的代理服务器概述 在第一部分,设置代理来接受传入连接,读取和解析请求,转发请求到Web服务器,读取服务器的响应,并将这些响应转发给相应的客户端(用于处理HTTP/1.0的GET请求) 启动时,你的代理应该监听在命令行指定的端口上接收传入连接。一旦建立了连接,代理应该从客户端读取整个请求并解析请求。它应该确定客户端是否发送了有效的 HTTP 请求;如果是,则可以建立自己的连接到适当的 Web 服务器,然后请求客户端指定的对象。最后,代理应该读取服务器的响应并将其转发给客户端 代码实现 首先包含必须的库 12345678910#include <stdlib.h>#include <string.h>#include <unistd.h>#include <signal.h>#include <sys/socket.h>#include <netin...
malloc_lab
实验目的 这是一个实现动态内存分配器的实现,类似实现C语言标准库中的malloc free realloc 函数 mm_init(void) 初始化堆内存区域 为后续的内存分配操作做准备 成功返回0,失败返回-1 mm_malloc(size_t size) 分配至少size字节的内存 返回的指针必须8字节对齐 不能与其他已分配的内存重叠 *mm_free(void ptr) 释放之前分配的内存块 只能释放由 mm_malloc 或 mm_realloc 分配且尚未释放的块 *mm_realloc(void ptr, size_t size) 重新调整已分配内存块的大小 特殊情况处理 ptr == NULL → 相当于 mm_malloc(size) size == 0 → 相当于 mm_free(ptr) 代码实现1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556...
组会
NumPy+GPTNumpy 作为一个知识浅薄的人,此处不得不先补一下numpy的相关知识 NumPy 是一个免费的开源 Python 库,用于 n 维数组(也称为张量)处理和数值计算 NumPy有对大型多维数组(也称为矩阵或张量)的支持,提供了一系列高级数学函数(基本的线性代数、随机模拟、傅立叶变换、三角运算和统计运算),是 Pandas、Scikit-learn 和 SciPy 等库的基础 NumPy库的中心数据结构是多维数组(值的网格)。 Numpy的ndarray(同构的n维数组对象):每个项包含大小相同的内存块,且采用统一识别方式 NumPy数组是类似数据类型的编译,在内存中密集集中打包 底层是用C语言实现的目标代码 使用前需要向量化(变成数组) 简单使用 123456789101112131415161718192021222324252627282930import numpy as np# 创建数组np.array([1,2,3,4,5]) # 创建数组np.zeros((3,2)) # 全零 3行2列np.ones((2,3)) # 全1np.ara...
Shell实验
这个实验需要我们在tsh.c中补充相关代码实现一个shell程序(废话ing)那么根据README文档中的顺序进行补齐 添加相关的宏定义和头文件 12345#define _POSIX_C_SOURCE 199309L#define _XOPEN_SOURCE 500#include <sys/select.h>#include <sys/time.h> eval 解析和解释命令行的主例程 1. 实现内容 若用户请求的是内置命令(quit、jobs、bg 或 fg)则立即执行。否则,创建一个子进程并在该子进程的上下文中运行该任务 若任务在前台运行,等待其终止后再返回 每个子进程必须具有唯一的进程组ID,这样在键盘上输入ctrl-c(ctrl-z)时,后台运行的子进程就不会从内核接收SIGINT(SIGTSTP)信号 2. 代码实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758//...
NEMU_PA3
仓库地址 阶段一 第一次没过破防了决定直接一部到胃一起写必做一和选做一 1. 概述 根据指导书可知,我们需要实现一级高速缓存和二级告诉缓存,其中l2会多一个脏标签的处理 公式:C=B* E *S (E缓存块 B字节 S组 C总大小) l1: E=8 B=64 C=64*1024 S=128 l2: E=8 B=64 C=4*1024 *1024 S=4096 Address: tag: t bits set index: s bits block offset: b bits l1: b=6 s=7 l2: b=6 s=12 2. 实现 定义高速缓存的结构(nemu/include/memory/cache.h) 12345678910111213141516171819202122232425262728293031323334#include <stdint.h>#define CAC...
SQL注入攻击
概述 在服务器向数据库进行数据查询时,不输入正常的数据,输入代码,使数据查询变成代码执行 sql语言(部分): 选取表格中所有内容 1select * from allusers 选取指定的用户名和密码 1where username = 'QingMaxLim' And passwd = 'passwd' where关键字 SQL语句遇到where关键词时,会判断条件是真是假 某个神奇的指令 1DROP DATABASE TABLICE --删除整个数据库 5.SQL合并两个表格的内容: 1select * from table1 Union select * from table2 报错与注释 多’ 1where username = 'QingMaxLim'' And passwd = 'passwd' 执行时将’’中的视为字符数据,而不是操作符,此条语句报错,服务器可能将SQL报错信息直接返回给用户2. ‘后有– 1where username = '...
buuctf-web-wp
[极客大挑战2019]EasySQL12admin' or 1=1#123456 ‘#’是注释符,相当于 1SELECT * FROM users WHERE username='admin' or 1=1 --' AND password='123' [极客大挑战2019]Havefun1查看网页源代码,有注释 1234567 <!--$cat=$_GET['cat']; // 从URL的GET参数中获取名为'cat'的值echo $cat; // 输出这个值if($cat=='dog'){ // 如果获取到的值等于字符串'dog' echo 'Syc{cat_cat_cat_cat}'; // 就输出这个看起来像flag的字符串}--> 在url中添加get参数为cat=dog [ACTF2020新生赛]...









