網路程式設計概述
1 計算機網路:
是指將地理位置不同的具有獨立功能的多臺計算機及其外部裝置,透過通訊線路連線起來,在網路作業系統,網路管理軟體及網路通訊協議的管理和協調下,實現資源共享和資訊傳遞的計算機系統。
2.網路程式設計
就是用來實現網路互連的不同計算機上執行的程式間可以進行資料交換 如 QQ 微信 陌陌 等即時通訊軟體
網路程式設計之三要素
1
IP 地址 網路中每一臺電腦的唯一標識 透過你的IP地址就能找到你計算機所在的位置
2 埠 每個程式在裝置上的唯一標識 用於標識程式的邏輯地址,透過埠找到指定程式
(可以這麼理解
ip地址為你家住幾棟樓 埠號為你傢俱體的門牌號)
3 協議 定義通訊規則,符合協議則可以通訊,不符合不能通訊
詳解IP地址
每個裝置在網路中的唯一標識
每臺網路終端在網路中都有一個獨立的地址,我們在網路中傳輸資料就是使用這個地址。
ipconfig:檢視本機IP192.168.88.217 (Win鍵+X+R 輸入CMD )
ping: 對聯網環境的檢測 測試連線192.168.50.12(www.baidu.com 也行) 看與他人是否連線上
本地迴路地址:127.0.0.1
255.255.255.255是廣播地址
IPv4:4個位元組組成,4個0-255。大概42億,30億都在北美,亞洲4億。2011年初已經用盡。
IPv6:8組,每組4個16進位制數。 目前剩餘數量基本無限 不用擔心用盡
1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f
1a2b::aaaa:0000:0000:0000:aabb:1f2f
1a2b:0000:aaaa::aabb:1f2f
1a2b:0000:aaaa::0000:aabb:1f2f
a2b:0000:aaaa:0000::aabb:1f2f
以上是比較常見的v6地址 正常為8組 但相鄰的0000 可以省略成
::
詳解埠號
每個程式在裝置上的唯一標識
每個網路程式都需要繫結一個埠號,傳輸資料的時候除了確定發到哪臺機器上,還要明確發到哪個程式。
埠號範圍從0-65535
編寫網路應用就需要繫結一個埠號,儘量使用1024以上的,1024以下的基本上都被系統程式佔用了。
常用埠:
mysql: 3306
oracle: 1521
web: 80
tomcat: 8080
QQ: 4000
feiQ: 2425
我們可以透過 360的功能大全裡面的 流量防火牆檢視埠號
埠是可以改變的 但建議使用系統預設的 如果更改可能會造成無法啟動
詳解協議
為計算機網路中進行資料交換而建立的規則、標準或約定的集合。
UDP
面向無連線(可以理解為發簡訊 ),資料不安全,速度快。不區分客戶端與服務端。
TCP
面向連線(三次握手),資料安全,速度略低。分為客戶端和服務端。 三次握手: 客戶端先向服務端發起請求, 服務 端響應請求, 傳輸資料 (可以這麼理解 我要訪問百度 必須先跟伺服器打個招呼 這是1 伺服器接受到了我的請求進行 了響應
這是2 最後進行傳輸資料 這是3)也可以是 美女: 約嗎? 美女回答: 約 最後: 出來見面 同理如果美女說不約 就等於服務端沒進行響應 那就GG了
Socket 簡單介紹
Socket套接字概述:
網路上具有唯一標識的IP地址和埠號組合在一起才能構成唯一能識別的識別符號套接字。
通訊的兩端都有Socket。
網路通訊其實就是Socket間的通訊。
資料在兩個Socket間透過IO流傳輸。
Socket在應用程式中建立,透過一種繫結機制與驅動程式建立關係,告訴自己所對應的IP和port。
原理可能有些人會懵逼 用人的話來講就是 我們的電腦是一座港口 socket就是碼頭 IO流就是船 船要貿易啊 把貨物從一座碼頭 運到另一座港口的碼頭 貨物就等同於我們要傳輸的資料
網路通訊先簡單介紹到這 要寫好幾個章節 先理解下簡單的基本概念 感覺講的挺清晰了 有什麼不對的地方 希望指點出來