決定來挑戰:自己寫BBS - Linux

By Sarah
at 2015-07-24T11:14
at 2015-07-24T11:14
Table of Contents
推 abcdefghi: telnet要一直佔著tcp connection不放,真的不適合繼續用 07/21 11:13
推 abcdefghi: http是stateless喜歡佔住tcp或是一次就斷線都可以,serv 07/22 05:02
→ abcdefghi: er或client可以根據自己的情況選擇最適合的方式,但tel 07/22 05:03
→ abcdefghi: net就只能永遠佔住tcp來保持自己的state, ssh也是有同 07/22 05:05
→ abcdefghi: 樣的缺點. 07/22 05:05
推 abcdefghi: tcp有太多情況會斷線,NAT被reset,手機從3G切到wifi,電 07/23 07:13
→ abcdefghi: 腦進standby. 如果系統的連線數只有幾百個,那tcp確 07/23 07:18
→ abcdefghi: 實不怕被佔用,如果是幾萬人的同時在線上,那差異就很大 07/23 07:19
→ abcdefghi: 了,每個tcp連線OS都要花幾KB的記憶體來維持,一堆沒有在 07/23 07:22
→ abcdefghi: 動作的連線等於就是白白浪費記憶體,幫你找了別人的實驗 07/23 07:23
→ abcdefghi: 用的地方,而且websocket並沒有要取代http,而是補足過去 07/23 07:30
→ abcdefghi: http在雙向傳送資料沒有效率的缺點,在一般的情況下,一 07/23 07:33
→ abcdefghi: 樣是用http. 07/23 07:49
在命令列打下面這三行指令,再多空一行
把中間的網站改成隨便一個網站
telnet xxxxxxx.com 80
GET / HTTP/1.1
Host: xxxxxxx.com
接著,你應該會看到一堆 html
其他像是 smtp 或是其他一些奇奇怪怪的通訊協議
都可以靠telnet搞定
當然啦,如果定義的傳輸資料是二進制的狀況,那就另當別論了。
但據我所知,大多數的通訊協議都是靠鍵盤能打出來的。
我覺得那些反對的理由以及反對的行為很奇怪
講到 http ,當然不只是連線的狀態以及斷線連線記憶體之類的而已
他還包含了 html css js 之類的解釋以及把html圖形化等等
所以 http 通訊協議是「很肥」的東西
只是因為http這種通訊協議太普及,瀏覽器、server軟體都唾手可得
所以會有http很方便的錯覺
如果有不服的話,可以試著去實作 http 通訊協議以及瀏覽器看看
server端還好
但client端在不用現成的libary的狀況下,應該會寫到死掉
尤其是解釋html然後圖形化的部份
當然有人可能會講http也可以傳json或是xml、圖片等等
但問題是,絕大多數的狀況都是html吧?
但telnet不一樣,telnet很單純的是就是把字元顯示在螢幕上
把打的字傳到server
頂多加上上色而已
那個很適合拿來當作寫網路程式的新手或是初學者的練習用作業
但簡單或複雜又怎麼樣呢?
如果真的寫過 socket 的server、client
就會發現最底層也不過就是那個樣子
至於最上面寫的,哪個好哪個不好的理由,其實都很虛幻
比起那些,在自己開發的軟體間的連線下,我比較喜歡自定通訊協議
那麼愛斷線就斷線
要維持住連線就維持住連線
要stateless就stateless
要效率也可以很有效率
還有,以自己的經驗,在多數狀況下,我會希望client端保持連線
而不是每傳輸一次資料就斷開
--
Tags:
Linux
All Comments

By Barb Cronin
at 2015-07-27T22:55
at 2015-07-27T22:55

By Yedda
at 2015-07-30T10:01
at 2015-07-30T10:01

By Thomas
at 2015-07-31T04:04
at 2015-07-31T04:04

By Mary
at 2015-08-02T02:29
at 2015-08-02T02:29

By Doris
at 2015-08-02T18:30
at 2015-08-02T18:30

By Jacob
at 2015-08-05T21:39
at 2015-08-05T21:39

By Lydia
at 2015-08-07T12:04
at 2015-08-07T12:04

By Regina
at 2015-08-12T04:56
at 2015-08-12T04:56

By Andrew
at 2015-08-15T04:30
at 2015-08-15T04:30

By Lily
at 2015-08-16T16:36
at 2015-08-16T16:36

By Andy
at 2015-08-16T23:17
at 2015-08-16T23:17

By Cara
at 2015-08-20T13:05
at 2015-08-20T13:05

By William
at 2015-08-24T04:23
at 2015-08-24T04:23

By Puput
at 2015-08-28T08:44
at 2015-08-28T08:44

By Margaret
at 2015-08-29T10:13
at 2015-08-29T10:13

By Michael
at 2015-09-01T04:28
at 2015-09-01T04:28

By Blanche
at 2015-09-02T13:03
at 2015-09-02T13:03

By Linda
at 2015-09-07T08:14
at 2015-09-07T08:14

By Michael
at 2015-09-11T23:36
at 2015-09-11T23:36

By Rosalind
at 2015-09-12T06:02
at 2015-09-12T06:02

By Victoria
at 2015-09-12T10:25
at 2015-09-12T10:25

By Sierra Rose
at 2015-09-13T04:56
at 2015-09-13T04:56

By Quanna
at 2015-09-14T09:31
at 2015-09-14T09:31

By Jake
at 2015-09-17T10:44
at 2015-09-17T10:44

By Daph Bay
at 2015-09-18T20:01
at 2015-09-18T20:01

By Odelette
at 2015-09-21T16:59
at 2015-09-21T16:59

By Edith
at 2015-09-25T21:58
at 2015-09-25T21:58

By Blanche
at 2015-09-30T20:18
at 2015-09-30T20:18

By Noah
at 2015-10-04T22:07
at 2015-10-04T22:07

By Skylar DavisLinda
at 2015-10-05T06:26
at 2015-10-05T06:26

By Gilbert
at 2015-10-05T23:42
at 2015-10-05T23:42

By Ursula
at 2015-10-07T05:04
at 2015-10-07T05:04

By Necoo
at 2015-10-11T21:26
at 2015-10-11T21:26
Related Posts
用 USB 安裝 linux 失敗

By Doris
at 2015-07-24T11:01
at 2015-07-24T11:01
for loop與if 判斷檔案搭配的問題

By Lily
at 2015-07-24T08:31
at 2015-07-24T08:31
急救 無線網路連線

By Poppy
at 2015-07-23T10:54
at 2015-07-23T10:54
PDF 中文顯示問題

By Oliver
at 2015-07-23T08:11
at 2015-07-23T08:11
在 GNU/Linux 系統上使用指令來燒錄光碟的一些心得

By Ethan
at 2015-07-22T23:00
at 2015-07-22T23:00