Socket Server (1) 初探
- 甚麼是 Socket Server
凡是網路兩端互相連線傳送資料時的溝通介面就是socket,是一個網路系統的通訊函式庫,在任何作業系統中可以通用。主要的5大函式組成:
- socket()
- bind()
- listen()
- connect()
- accept()
listen()是使Socket進入等待連線狀態,等待客戶端(Client) 連上線來,很顯然的呼叫此函式的主機,功能會是一台伺服器(Server)。
如果有Client想要連過來,此時可以呼叫connect()來跟Server 連線。而Server接受後會建立新的socket和Client通訊,listen socket則繼續存在等待其他Client,直到關閉為止。
-----------------------------------------------------------------------------------------------
- TCP 的連線建立概論
Client端若要與Server溝通,必須透過connect建立連線,經過驗證確定連線成功後,才能進行資料傳輸。在TCP的通訊協定中存在著一種三向交握(three-way handshake)機制:
- Client向Server提出連線要求(connect())
- .Server若接到要求,則回應Clinet接到要求
- .Client接到回應,向Server表示收到回覆
(Ref: http://mis.bankshung.net/2013/12/port-nmap.html)
至此才算連線建立完成,雙方可以開始交換資料若發生錯誤,則會由轉送中繼站回傳ICMP錯誤訊息connect函式讀到後,會回報錯誤給程式。
------------------------------------------------------------------------------------------------------------
下一篇將會探討python socket server 與 client 的實作方法。
留言
張貼留言