iT邦幫忙

DAY 13
3

資訊學院的30門課系列 第 13

資訊學院的30門課-網路程式設計Network Programming

mosaic 1.0略早於windows95問世,剛剛閃過一個念頭,要不是當年Pentium等級的電腦不夠強大,chrome os的概念很可能提早出現。
在寫過一個web server後,就覺得CGI的出現是很正常的,fork一個process,把標準輸出導給socket。這些觀念我在使用了瀏覽器五年後,才在網路程式設計這門課學到,不同於前一回的網路通訊概論,這門網路程式設計,決不是如其他掛羊頭賣狗肉,或是同學上台報告,該上課與該聽課的,反客為主,上下交相賊,交差了事。

第一個project是用socket做一個client-server文字chat room,其目的很簡單,相當於網路通訊概論的期末作業。

第二個project是用socket做一個網站,這邊的網站不是只寫個asp或jsp的網站,是用C Code寫一個daemon。實際寫過之後,CGI的原理也懂了,實作由post跟get抓取引數,最最重要的,是為什麼daemon可以服務這麼都人,一開始都以為是多行程或是多執行緒,萬萬沒想到,效能最好的daemon卻是單行程,配合non-blocking I/O。

第三個project是用socket做meta search,算是搜尋引擎的搜尋引擎,關鍵字丟到三個search enagine,然後合併結果。

其往後的影響,就是實作MPEG2與H.264協定分析儀,如IPTV機上盒的播放程式是跑UDP協定,或許人人皆知,因為與時間有關係的封包,如果packet loss再重傳,是沒有意義的,所以是跑UDP,有較好的傳輸效能。但是跑的是UDP Servr或是UDP Client呢?實作一次馬上有深刻的了解。

沒有先熟悉socket programming,就無從抓取MPEG2與H.264的串流,更無從進行封包剖析,作這個專案時一開始被許多長官同仁質疑,用只能播MPEG2 SD的機上盒,如何實作H.264 HD的協定分析呢?都不放出來了,要怎麼分析?這讓我聯想到,一開始再TANET上分享任天堂模擬器概念的大大,被大家公幹到體無完膚,自此我深刻地體認到,對於未知的領域,千萬不可以以先入為主的認知,或者淺薄的背景知識作學問,因為我們不懂的部分太多太多了。

資訊學院的30門課-課程一覽表


上一篇
資訊學院的30門課-微積分(下) calculus
下一篇
資訊學院的30門課-離散數學 discrete mathematics
系列文
資訊學院的30門課30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言