天天看點

實驗四 Web伺服器1-socket程式設計

任務詳情

基于華為鲲鵬雲伺服器CentOS中(或Ubuntu),使用Linux Socket實作:

  1. time伺服器的用戶端伺服器,送出程式運作截圖
  2. echo伺服器的用戶端伺服器,送出程式運作截圖,伺服器把用戶端傳進來的内容加入“伺服器程序pid 你的學号 姓名 echo :”傳回給用戶端
  3. 伺服器部署到華為雲伺服器,用戶端用Ubuntu虛拟機。
  4. 要用多線程或者多程序實作,至少連接配接兩個用戶端。
  5. 把伺服器部署到試驗箱。(加分項)

實驗過程

ip位址

實驗四 Web伺服器1-socket程式設計

2用戶端連接配接

一、用戶端伺服器-time顯示日期

實驗四 Web伺服器1-socket程式設計

編譯指令

實驗四 Web伺服器1-socket程式設計

代碼在此

碼雲連接配接

如圖所示:

實驗四 Web伺服器1-socket程式設計

二、echo實作

我的學号是20191223;

實驗四 Web伺服器1-socket程式設計

實驗四 Web伺服器1-socket程式設計

最終檔案

實驗四 Web伺服器1-socket程式設計

截圖:

實驗四 Web伺服器1-socket程式設計

三、伺服器部署到華為雲伺服器

檢視華為雲ip位址:

實驗四 Web伺服器1-socket程式設計

使用ssh登入到華為雲

實驗四 Web伺服器1-socket程式設計

執行代碼,檢視結果:

實驗四 Web伺服器1-socket程式設計

伺服器顯示:

實驗四 Web伺服器1-socket程式設計

四、多線程或者多程序實作,至少連接配接兩個用戶端

概要:

多線程:啟動多個線程,每個線程執行和一個用戶端的互動。

  1. 主線程完成與用戶端的連接配接工作,函數線程與用戶端具體互動。

2.函數線程怎麼拿到主線程的檔案描述符?(建立線程時,以值傳遞的形式傳遞給函數線程,即pthread_create的參數)

3.主線程需不需要關閉檔案描述符?(檔案描述符是PCB中struct file*數組的下标,同程序的多個線程共享PCB,故主線程不需要關閉檔案描述符。隻要有一個線程關閉檔案描述符,就直接關閉了與用戶端的通訊)

代碼連結在此:

碼雲

實作截圖:

1)用戶端1

實驗四 Web伺服器1-socket程式設計

2)用戶端2

實驗四 Web伺服器1-socket程式設計

3)伺服器端

實驗四 Web伺服器1-socket程式設計