第三週:QEMU 網絡
要求
學習文檔中心QEMU網絡視頻教程。觀看視頻及文檔,能夠搭建 QEMU 的運行環境併成功運行文件系統;瞭解基本的網絡概念,學會使用抓包工具分析數據包。
作業提交:第三週作業+姓名.zip
其中包含:
作業2的.c
作業3的.c
一個word文檔寫出幾個作業的步驟、心得
作業1:
獲取並運行文件系統相關示例程序,這可以在學習過程中進行。
作業2:
文件匹配: 有一系列文件如:1.txt, 12.txt, 123.txt,從中找出1.txt,並將文件內容輸出出來。
作業3:(服務器開兩週,注意做作業時間)
觀看視頻及文檔,能夠正常獲取並運行示例程序,通過示例程序的學習能夠掌握使用 Socket 進行網絡編程的方法,能夠實現一個簡單的 TCP 聊天客戶端
背景
在服務器 183.193.243.90 的 5000 端口 上運行了一個基於 TCP 的簡單的聊天服務器。
- 當有 TCP 客戶端連接上後,服務器會回覆給客戶端 Welcome to TestChat;
- 未使用 login 命令登錄服務器之前,服務器收到任何信息只會回覆 Please log in Use "login "
- 服務器端能夠接收如下命令:
命令 | 說明 | 示例 | 服務器回覆 |
---|---|---|---|
login | 登錄聊天室 | login ID | 無 |
say | 說話 | say My name is Yqiu, I’m doing this job at 20180512. | ID :My name is Yqiu, I’m doing this job at 20180512. |
look | 查看聊天室有哪些人 | look | 所有ID |
who | 我是誰 | who | login ID |
logout | 退出 | logout | 無 |
其他 | Unknown Command |
服務器會把接受到的每條命令,發送給客戶端。
如果服務器接受到錯誤命令,會發送給客戶端 Unknown command 的字符串。
注意:每條命令必須以\r\n結束,服務器才能識別。
作業要求:
通過編程實現:
- 使用 login 命令登錄上服務器聊天室,並將服務器返回的信息通過串口打印出來
- 使用 say 命令通知服務器你的個人姓名和作業時間 “My name is Yqiu, I’m doing this job at 20180730”,並將服務器返回的信息打印出來
- 使用 look 命令查看聊天室人員,並將服務器返回的信息打印出來
- 使用 who 命令查看我是誰,並將服務器返回的信息打印出來
- 使用 say 命令告訴服務器我看到有哪些人在聊天室
- 使用 say 命令告訴服務器我準備退出了
- 使用 logout 退出聊天室
練習題:
完成以下練習題:
1、若有宏定義:#define MOD(x,y) x%y
則執行以下語句後的輸出結果是
int a=13,b=94;
printf("%d\n",MOD(b,a+4));
A.5
B.7
C.9
D.11
答案:B
2、若一個棧的輸入序列是1,2,3,…,n,輸出序列的第一個元素是n,則第i個輸出元素是( )
A.n
B.n-i
C.n-i-1
D.n-i+1
答案:D
特例判斷
3、以下程序輸出結果爲:
char* f(char *str, char ch) {
char *it1 = str;
char *it2 = str;
while (*it2 != '\0') {
while (*it2 == ch) { it2++; }
*it1++ = *it2++;
}
return str;
}
void main(int argc, char *argv[]) {
char *a = new char[10];
strcpy(a, "abcdcccd");
cout << f(a, 'c');
}
A.abdcccd
B.abdd
C.abcc
D.abddcccd
答案:
4、編程:將一個正整數分解質因數。例如:輸入90,打印出90=233*5。
#include <stdio.h>
int main()
{
return 0;
}
1.設棧 S 和隊列 Q 的初始狀態爲空,元素 e1 、 e2 、 e3 、 e4 、 e5 和 e6 依次通過棧 S ,一個元素出棧後即進入隊列 Q ,若 6 個元素出隊的順序是 e2 、 e4 、 e3 、 e6 、 e5 、和 e1 ,則棧 S 容量至少應該是
A.6
B.4
C.3
D.2
答案:
1、以下有關IO接口或IO設備說法錯誤的是( )
A.GPIO一般有三態:0態 ,1態 ,高阻態
B.I2C只有兩條信號線,在SCL爲高電平,將SDA從高電平拉低後可以開始傳輸數據
C.SPI一般使用4線制,可以一主多從
D.UART是全雙工串行異步通信,直接使用UART通信時,需要將信號相同的線相連。
答案:
1、中斷屏蔽器能屏蔽( )
(A)所有中斷和異常 (B)除了NMI外所有異常和中斷
(C)除了NMI、異常所有其他中斷 (D)部分中斷
答案:
2.下列寄存器中,彙編語言程序員可見的是()。
A.存儲器地址寄存器(MAR)
B.程序計數器(PC)
C.存儲器數據寄存器(MDR)
D.指令寄存器(IR)
答案:
3.以下各種情況中,屬於死鎖現象的是() 。
A.某進程執行了死循環
B.某進程爲了得到某資源,等待了很長的時間
C.某進程爲了得到某資源,等待了無限的時間
D.操作系統故障
答案:
1、指出下面的 IP 地址中,哪個是 C 類地址 ( )
A.127 . 19 . 0 . 23
B.193 . 0 . 25 . 37
C.225 . 21 . 0 . 11
D.170 . 23 . 0 . 1
答案: