增加中间变量,用中间变量的变量名来代替代码注释 减少不必要的if语句 voidWriter::push(stringdata) {// if(data.size() + buf.size() > capacity_) {// buf.append(data.substr(0, capacity_ - buf.size()));// bytes_pushed_cnt += capacity_ - buf.size();// } else {// buf.append(data)...
【CS144 Lab0】 Lab0主要是热身。 task1和task2比较简单,按他指示来就行,略。 task3 写一个WebGet,代码如下: voidget_URL(conststring&host,conststring&path){ // Your code here. // You will need to connect to the "http" service on // the computer whose name is in the "host" string, ...
webget代码很简单get_URL函数: voidget_URL(conststring&host,conststring&path){// Your code here.TCPSocketsock{};sock.connect(Address(host,"http"));stringmessage="GET "+path+" HTTP/1.1\r\nHOST: "+host+"\r\n\r\n";sock.write(message);sock.shutdown(SHUT_WR);std::stringchunk;while(!
Reader::pop(uint64_tlen){uint64_tpop_size=std::min(len,buffer.size());buffer=buffer.substr(pop_size);popcnt_+=pop_size;return;}uint64_tReader::bytes_buffered()const{returnbuffer.size();} 结果 Test project /mnt/d/vscode_project/cs144/lab/minnow/build Start 1: compile with bug-checker...
图1-11 byte_stream.hh文件代码细节 图1-12 byte_stream.cc 文件代码细节 在build目录下输入"make cheak0"对文件进行编译检查,可以看到所有测试点都通过,结果如图 1-13 所示。 图1-13 check结果 四、实验体会 在这次实验中,我们学习了如何获取网页的内容,并实现了简单的客户端-服务端的同步与监听。同时,我们...
CS144 lab0 笔记 下学期就学习计算机网络了,假期正好找个lab预习一下 配置 直接用 WSL2 + Clion(安装在WSL2上) 做的实验,还是比用vscode方便一些的 直接fork仓库 git clone … 用clion打开,他都会自动生成 开始写代码 实验writing webget(入门) 这个实验就是让你熟悉一下网络编程,做之前最好读一下官方推荐的...
代码运行次数:0 复制 Cloud Studio代码运行 voidTCPReceiver::segment_received(constTCPSegment&seg){// check syn// tcp头中syn标志被设置了---记录初始序列号if(seg.header().syn){isn_=seg.header().seqno;}// 如果初始化序列号还没有设置,说明TCP连接还没有建立,忽略当前传入的数据包if(!isn_.has_...
CS144 lab0 实现 假定你已经安装他的要求装好了vm。 Fetch a Web page 使用telnet请求网页 telnet cs144.keithw.org http这条命令是启动telnet程序在你自己电脑和服务器之间建立一条可靠的数据流,同时运行一条特殊的服务(http) 接下来的几条操作需要手速快一点,输入GET /hello HTTP/1.1这条是告诉服务器你要...
斯坦福大学的CS144课程中,Lab0是计算机网络实验的开端。这个实验旨在帮助学生熟悉课程所使用的开发环境,并为接下来的实验做好准备。Lab0通常包含以下几个主要方面: 环境设置和准备:学生需要安装和配置网络实验的开发环境。这可能涉及到特定的操作系统、虚拟机、编程环境或者其他必备软件的设置。