在寫過一個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呢?實作一次馬上有深刻的了解。
沒有留言:
張貼留言