Socket網路編程,socket
Socket網路編程網路通訊三要素:
- IP地址[主機名稱]
- 網路中裝置的標識
- 本地迴環地址:127.0.0.1 主機名稱:localhost
- 連接埠號碼
- 用於標識進程的邏輯地址
- 有效連接埠:0~65535
- 其中0~1024由系統使用或者保留連接埠,開發中不要使用1024一下的連接埠
- 傳輸協議[通訊的規則]
常見網路通訊協定
| 協議 |
連接埠 |
說明 |
| HTTP |
80 |
超文字傳輸通訊協定 (HTTP) |
| HTTPS |
443 |
HTTP+SSL,HTTP的安全版 |
| FTP |
20,21,990 |
檔案傳輸 |
| POP3 |
110 |
郵件協議 |
| SMTP |
25 |
簡易郵件傳輸通訊協定 |
| telnet |
23 |
遠程終端協議 |
網路參考模型
TCP & UDPUDP(User Datagram Protocol 使用者資料報)
- 只管發送,不確認對方是否接收到
- 將資料及源和目的封裝成資料包中,不需要建立串連
- 每個資料報的大小限制在64k之內
- 因為無需串連,因此是不可靠協議,但是傳輸速度快
TCP(Transmission Control Protocol 傳輸控制通訊協定)
- 需要建立串連,形成傳輸資料通道
- 在串連中進行大資料傳遞(資料大小不受限制)、
- 通過三向交握完成串連,是可靠協議,安全送達
- 必須建立串連,所以效率比較低
Socket百度百科上的解釋
- Socket的英文原義是“孔”或“插座”。作為BSD UNIX的進程通訊機制,取後一種意思。通常也稱作”通訊端”,用於描述IP地址和連接埠,是一個通訊鏈的控制代碼。在Internet上的主機一般運行了多個服務軟體,同時提供幾種服務。每種服務都開啟一個Socket,並綁定到一個連接埠上,不同的連接埠對應於不同的服務。Socket正如其英文原意那樣,像一個多孔插座。一台主機猶如布滿各種插座的房間,每個插座有一個編號,有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節目。 客戶軟體將插頭插到不同編號的插座,就可以得到不同的服務。
Socket的作用
- Socket就是為網路服務提供的一種機制
- 在Unix中,網路既是Socket,並不局限在TCP/UDP
- Socket可以用於自訂協議
- 通訊的兩端都是Socket
- 網路通訊其實就是Socket間的通訊
- 資料在兩個Socket間通過IO傳輸
Socket通訊
Scoket開發