6.26 考研又锤子了

唉,身体不行啊.计划又泡汤了

 

今天补了下网络.了解了一下TCP协议的三次握手.

 

依据课本中所说,三次握手内容如下:

-------------------------------------------------------------------------------------------------------------------- 

   第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。

   第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。

   第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器时入Established状态,完成三次握手。

-------------------------------------------------------------------------------------------------------------------- 

 tcp协议抓包所得

 

No1:客户端向服务器端发送SYN请求,SEQ=0,客户端进入SYN_SEND状态
No2:服务器向客户端发回[SYN,ACK],SEQ=0,ACK = 1,服务器进入SYN_RECV
NO3:客户端向服务器发送ACK,ACK=1,SEQ=1,此为第三次握手.
NO4:客户端向服务器发送数据:"END".SEQ=1,ACK=1,(哦,[PSH,ACK]就是发送数据)
NO5:客户端向服务器发送指令[FIN,ACK],SEQ=4,ACK=1,表示已经发完.
NO6:服务器向客户端发回[ACK],搞不懂了
NO7:服务器向客户端发回[FIN,ACK],SEQ=1,ACK=5,应该是服务器告诉客户端,连接已断
NO8:客户端向服务器发送[ACK],SEQ=5,ACK=2,并有[TCP CHECKNUM INCORRECT],搞不明白咋的

 

记在这里.查下资料先

# 题目重述 编写一个矩阵转置的函数,矩阵的行、列数在程序中由用户输入。 # 给出答案(答案为带注释的代码块) ```cpp #include <iostream> #include <vector> using namespace std; // 矩阵转置函数 void matrixTranspose(vector<vector<int>>& matrix, int rows, int cols) { // 创建转置矩阵,行列互换 vector<vector<int>> transposed(cols, vector<int>(rows)); // 进行转置操作 for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { transposed[j][i] = matrix[i][j]; // 转置:行变列,列变行 } } // 输出转置后的矩阵 cout << "转置后的矩阵:" << endl; for (int i = 0; i < cols; ++i) { for (int j = 0; j < rows; ++j) { cout << transposed[i][j] << " "; } cout << endl; } } int main() { int rows, cols; // 输入矩阵的行数和列数 cout << "请输入矩阵的行数:"; cin >> rows; cout << "请输入矩阵的列数:"; cin >> cols; // 创建原始矩阵 vector<vector<int>> matrix(rows, vector<int>(cols)); // 输入矩阵元素 cout << "请输入矩阵元素:" << endl; for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { cin >> matrix[i][j]; } } // 调用转置函数 matrixTranspose(matrix, rows, cols); return 0; } ``` # 代码解析 1. **函数设计**:`matrixTranspose` 函数接受二维向量引用及行列数,实现原地逻辑转置并输出。 2. **动态输入**:`main` 函数中通过 `cin` 获取用户指定的行、列数及矩阵数据。 3. **转置逻辑**:利用嵌套循环将原矩阵 `$a_{ij}$` 的元素赋值给新矩阵的 `$a_{ji}$` 位置。 4. **输出展示**:转置后的新矩阵按行列格式打印输出。 # 知识点(列出该代码中遇到的知识点) - **二维向量的动态创建与使用**:`vector<vector<int>>` 实现可变大小矩阵存储。 - **矩阵转置原理**:行列互换,即原矩阵第 `$i$` 行第 `$j$` 列元素变为新矩阵第 `$j$` 行第 `$i$` 列。 - **函数参数传递与引用**:使用引用传递避免大对象拷贝,提高效率并允许外部修改。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值