人生道路上:希望自己做到保持簡單,保持學習,保持嚴謹!
第一:計算機通訊原理
1.osi七層模型
應用層:網路服務與終端使用者的乙個介面。
表示層:資料的表示、安全、壓縮。(在五層模型裡面已經合併到了應用層)格式有,jpeg、ascll、decoic、加密格式等
會話層:建立、管理、終止會話。(在五層模型裡面已經合併到了應用層)對應主機程序,指本地主機與遠端主機正在進行的會話
傳輸層:定義傳輸資料的協議埠號,以及流控和差錯校驗。協議有:tcp udp,資料報一旦離開網絡卡即進入網路傳輸層
資料鏈路層:建立邏輯連線、進行硬體位址定址、差錯校驗 [2] 等功能。(由底層網路定義協議)將位元組合成位元組進而組合成幀,用mac位址訪問介質,錯誤發現但不能糾正。
物理層:建立、維護、斷開物理連線。
2.客戶端與服務端通訊原理
第一步:b機器與a機器建立連線,a機器上有很多服務,故要指明具體連線哪乙個服務(ip+port,ip相當於總機,port相當於分機號)
第二步:訪問服務
第三步:服務響應客戶端請求(同理,也要ip+port,指明回給客戶端哪乙個服務)
第二:socket介紹
1.實現乙個簡單的socket(偽**)
第一步:
socket socket = getsocket(type = "tcp") #設定好協議型別
第二步:
connect(socket, address = "1.2.3.4", port = "80") #連線遠端機器
第三步:
send(socket, "hello, world!") #傳送訊息
第四步:
close(socket) #關閉連線
2.建立客戶端和服務端通訊2.1.客戶端(偽**)
import socket
socket.tcp/ip #指定協議型別
connect(a.ip,a.port) #建立連線
socket.send(hello world!) #傳送請求
socket.recv() #接收資料
socket.close() #關閉連線
2.2.服務端(偽**)
import socket
socket.tcp/ip #宣告協議型別
listen(a.ip,a.port) #在這個介面監聽,一般多個網絡卡,故也要指定網絡卡,要是沒有可預設:0.0.0.0
waiting() #等資料請求過來
socket.recv() #接收資料
socket.send() # 返回資料
socket.close() #關閉連線,也可以不關閉,服務端可以等很多人來連線
第三:實現socket簡單例項1.客戶端:
import socket
# 客戶端
client = socket.socket() # 宣告socket型別,同時生成socket連線物件
client.connect(('localhost', 6969))
client.send(b"hello czy!")
data = client.recv(1024) # 接收回應資料
print('接受到的資料為:', data)
client.close()
"""執行結果:
接受到的資料為: b'okokokok'
"""
2.服務端:
import socket
# 服務端
server = socket.socket()
server.bind(('localhost', 6969)) # 繫結要監聽的埠
server.listen()
print("我要開始等待對方請求了")
# conn就是客戶端連線過來的時候,伺服器為其生成的乙個連線例項
conn, address = server.accept() # 等**打進來
print(conn, address)
print("請求來了")
data = conn.recv(1024)
print('客戶端請求資料為:', data)
conn.send(b"okokokok")
"""執行結果:
我要開始等待對方請求了
('127.0.0.1', 10068)
請求來了
客戶端請求資料為: b'hello czy!'
"""
網路程式設計 Socket程式設計
一 網路部分 1.ip 2.埠號 在網路協議中使用埠號識別主機上不同的程序,不同的埠對應於不同的服務 應用程式 3.協議 tcp二 socket部門socket通訊基本流程圖 根據socket通訊基本流程圖,總結通訊的基本步驟 伺服器端 第一步 建立乙個用於監聽連線的socket對像 第二步 用指定...
socket網路程式設計
首先認識乙個表示主機資訊的結構體 struct hostent h addrtype 這是表示主機所使用的位址型別的定義,在c語言winsock2.h標頭檔案中以 af 開頭的巨集定義就是它的值。如果使用的是ipv4,則值為 af inet 如果是ipv6,值為 af inet4 h length ...
Socket網路程式設計
socket 網路程式設計 在c free中建立乙個對話方塊工程,取名socket1,建立如下檔案結構 main.h ifndef main h define main h include bool winapi main proc hwnd hwnd,uint umsg,wparam wparam...