1. 程式人生 > >套接字(socket) 埠

套接字(socket) 埠

       套接字(socket):Socket可以看成在兩個程式進行通訊連線中的一個端點,一個程式將一段資訊寫入Socket中,該Socket將這段資訊傳送給另外一個Socket中,使這段資訊能傳送到其他程式中。

套接字,是支援TCP/IP的網路通訊的基本操作單元,可以看做是不同主機之間的程序進行雙向通訊的端點,簡單的說就是通訊的兩方的一種約定,用套接字中的相關函式來完成通訊過程。

非常非常簡單的舉例說明下:Socket=Ip address+ TCP/UDP port。

       埠:"埠"是英文port的意譯,可以認為是計算機與外界通訊交流的出口。其中硬體領域的埠又稱介面。

在Internet上,各主機間通過TCP/IP協議傳送和接收資料包,各個資料包根據其目的主機的ip地址來進行網際網路絡中的路由選擇。可見,把資料包順利的傳送到目的主機是沒有問題的。問題出在哪裡呢?我們知道大多數作業系統都支援多程式(程序)同時執行,那麼目的主機應該把接收到的資料包傳送給眾多同時執行的程序中的哪一個呢?顯然這個問題有待解決,埠機制便由此被引入進來。

本地作業系統會給那些有需求的程序分配協議埠(protocol port,即我們常說的埠),每個協議埠由一個正整數標識,如:80,139,445,等等。當目的主機接收到資料包後,將根據報文首部的目的埠號,把資料傳送到相應埠,而與此埠相對應的那個程序將會領取資料並等待下一組資料的到來。