最近有人私信我說,我寫的博客有些膚淺,沒有深究,在此我統一回復一下,這些博客大多都是概念性東西,是用通俗的例子讓你理解這個技術或者知識到底是怎麼一樣原理。
所以我在後面都加着適合新人,我們都是從新人走過來的,知道初學者的那種迷茫,只會代碼,不懂原理和含義,就比如,註解,你不去學習理解,初學者根本就不知道那是個什麼東西,爲什麼要使用註解。
如果是資深大牛,那就不要看了,還是那句話,適合新人。
1,什麼是Socket
網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱爲一個socket。
java中的Socket
而Java中的Socket其實就是兩個設備之間進行數據交換格式。
2,Socket的理解
建立網絡通信連接至少要一對端口號(socket)。socket本質是編程接口(API),對TCP/IP的封裝,TCP/IP也要提供可供程序員做網絡開發所用的接口,這就是Socket編程接口;HTTP是轎車,提供了封裝或者顯示數據的具體形式;Socket是發動機,提供了網絡通信的能力。
Socket的英文原義是"孔"或"插座"。作爲BSD UNIX的進程通信機制,取後一種意思。通常也稱作"套接字",用於描述IP地址和端口,是一個通信鏈的句柄,可以用來實現不同虛擬機或不同計算機之間的通信。在Internet上的主機一般運行了多個服務軟件,同時提供幾種服務。每種服務都打開一個Socket,並綁定到一個端口上,不同的端口對應於不同的服務。
Socket正如其英文原意那樣,像一個多孔插座。一臺主機猶如佈滿各種插座的房間,每個插座有一個編號,有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節目。 客戶軟件將插頭插到不同編號的插座,就可以得到不同的服務。
3,網絡編程ip,端口,域名。
3.1 IP
ip就是每臺計算機的唯一標識符
3.2 端口
端口就是每一個應用程序的唯一標識符
3.3 域名
域名通過DNS解析