分享到plurk 分享到twitter 分享到facebook

版本 c1ba805605f8773751fa5df9ae4f33076f6cc1a2

2016q1 Homework #3

預期目標

  • 學習多執行緒程式開發
  • 應用物件導向程式開發方法
  • 透過 Doxygen 自動建立技術文件
  • 培養專業程式開發風格

預先安裝的套件

$ sudo apt-get install apache2-utils check
$ sudo apt-get install doxygen graphviz

Server Framework in modern C

$ git clone https://github.com/embedded2016/server-framework.git
$ cd server-framework
$ make
$ ./test-async
- 預期將看到類似以下輸出:
wrote task 8190
wrote task 8191
Hi! 16377
Hi! 16378
# signal finish at (711.426132) ms
# elapsed time: (711.728594) ms
$ ./test-reactor
- 預期將看到以下訊息:
Serving HTTP on 127.0.0.1 port 8080
now open up the URL http://localhost:8080 on your browser
- 依據指示,在網頁瀏覽器裡頭打開網址 `http://localhost:8080`,將會看到 "Hello World!" 字樣
- 回到原本執行 `./test-reactor` 的終端機視窗,按下 `Ctrl-C` 以結束程式
$ ./test-protocol-server
- 預期將看到類似以下訊息:
(pid 4130 : 8 threads) Listening on port 8080 (max sockets: 65536, ~5 used)
- 這時再次透過網頁瀏覽器開啟網址 `http://localhost:8080`,可以發現原本終端機印出類似以下訊息:
A connection was accepted on socket #7.
A connection was accepted on socket #8.
Socket #7 is now disconnected.
Socket #8 is now disconnected.
- 重複上述動作幾次,又會看到新的訊息,指出 socket 編號的更動