用來標記網路上的一台電腦
window:
ifconfig
linux:
ipconfig
1-1-3-1. ipv4(被廣泛使用的)
ip協議的版本號是4
當前再用,目前被廣泛應用
ipv4的位址位數為32位(4位位元組)
位址有限,幾乎全部耗盡
1-1-3-2. ipv6
ip協議的版本號是6
ipv6的位址位數字128位(16位位元組)
80埠分配給http服務
21埠分配給ftp服務
。範圍是從0到1023
動態埠的範圍是從1024-65535
tcp/ip協議
tcp/ip 定義了電子裝置如何連入網際網路,以及資料如何在它們之間傳輸的標準。協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的協議來完成自己的需求。
tcp/ip協議模型
socker建立套接字
使用套接字收/發資料
關閉套接字
2-2-1. udp傳送與接收程式
udp傳送資料
import socket
defmain()
:# 建立乙個udp套接字
udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)
udp_socket.sento(b'nihao',(
'192168.0.162'
,8080
)# 關閉socker
udp_socket.close(
)if __name__ ==
'__main__'
: main(
)
udp接收資料建立套接字
繫結本地資訊(ip和埠)
接收資料
列印資料
關閉套接字
import socket
defmain()
: udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)
# 1 建立套接字
bind_addr =(''
,7789
)# 不寫ip,表示本機的任何乙個ip
udp_socket.bind(bind_addr)
# 2 繫結本地資訊
while
true
: recv_data = udp_socketrecvfrom(
1024
)# 3. 1024 表示本次接收最大位元組數
recv = recv_data[0]
send_data = recv_data[1]
print
("{}:{}"
.format
(str
(send_data)
, recv.decode(
'gbk'))
# 4. 列印資料
udp_socket.close(
)# 5. 關閉套接字
if __name__ ==
'__main__'
: main(
)
埠繫結問題如果程式執行時,沒有繫結埠,那麼作業系統會自動分配乙個埠給程式。而且同意埠,不能用兩次。
udp聊天器
建立套接字,套接字是可以同時收發資料的
傳送資料
接收資料
2-3. tcp客戶端與服務端
tcp介紹
tcp特點
面向連線:
可靠傳輸:
tcp與udp區別總給
cp面向連線;udp是無連線的,即傳送資料之前不需要建立連線。
tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達;udp盡最大努力交付,即不保證可靠交付。
udp具有較好的實時性,工作效率比tcp高,適用於對高速傳輸和實時性有較高的通訊或廣播通訊。
每一條tcp連線只能是點到點的;udp支援一對一,一對多,多對一和多對多的互動通訊。
tcp對系統資源要求較多,udp對系統資源要求較少。
udp 通訊
tcp 通訊
tcp 客戶端與服務端的定義
伺服器端:就是提供服務的一方,而客戶端,就是需要被服務的一方
tcp客服端
構建流程:
建立socket
鏈結伺服器
接收資料(最大接收2014位元組)
關閉套接字
tcp服務端
socket建立套接字
bind繫結ip和port
listen使套接字變為可以被動鏈結
accept等待客戶端的連線
recv/send接收傳送資料
tcp服務端為多個客戶端服務
tcp客戶端
建立套接字
目的資訊 伺服器的ip和port
連線伺服器
接收對方傳送過來的資料
接收到資料在建立檔案、
關閉套接字
tcp服務端
socket建立套接字
bind繫結ip和port
listen使套接字變為可以被動鏈結
accept等待客戶端的鏈結
recv/send接收傳送資料
高階程式設計之網路程式設計(三)
io 模型 1 阻塞模型 fifo pipe read fgetc fgets fread recv recvfrom 以上獲取資料的函式預設都是阻塞方式接收資料。2 非阻塞模型 2.1 在開始階段的open函式部分調整 open fifo o rdonly o nonblock 函式 open r...
C 高階程式設計之「反射」
一,定義 反射技術,能夠讓託管 在執行時檢視元資料以及 的各方面資訊。二,常用方法 1,獲取物件方法 必須以public修飾的方法,不包括建構函式 2,獲取物件屬性 3,獲取物件的父類 附示例 using system using system.collections.generic using s...
高階程式設計之目錄(一)
目 錄 流 1.dir opendir const char name 功能 開啟乙個目錄獲得乙個目錄流指標 引數 name 檔名 返回值 成功目錄流指標 失敗返回null 2.struct dirent readdir dir dirp 功能 從目錄流中讀到乙個檔案的資訊 引數 dirp 目錄流指...