本文目錄:
一、socket
二、tcp伺服器
三、tcp客戶端
四、udp伺服器
五、udp客戶端
六、聊天的客戶端
七、聊天的伺服器
學習網路程式設計 其實就是在學socket主要控制傳輸資料的方式tcp的傳輸方式
優點:通過三次握手來與伺服器建立連線
可以保證資料的完整性
a機器給b機器傳送資料報 要求b機器必須立即返回乙個確認包
a機器會等待一段時間,如果超時還沒有收到確認,則重發資料
缺點:傳輸效率低
使用場景: 文字聊天,支付寶轉賬等,
udp傳輸方式:不需要建立連線,直接傳送
缺點: 不能保證資料的完整性
優點:傳輸效率比tcp高
"""python中的socket
在使用socket的時候使用者需要關心的是 ip位址,port埠, 傳輸協議tcp/udp,你要傳送的資料data
在寫網路程式設計的時候,必然是有兩台**,對應著客戶端和伺服器
使用socket來完成tcp通訊
應該先完成伺服器的**編寫
"""
importsocket
#1.建立乙個代表伺服器的socket物件
s =socket.socket()
#2.繫結埠號和ip位址
#127.0.0.1 表示當前這個電腦的ip
address = ("
127.0.0.1
",8080)
s.bind(address)
print("
伺服器已啟動!")
#3.開始監聽這個埠
#5表示 可以有5個處於半連線狀態的連線 指的不是最大連線數
s.listen(5)
print("
test")
#4.接受連線請求
#該函式是阻塞的 會卡主程式的執行,必須等到有乙個客戶端進來才會繼續執行
#返回元組 第乙個是代表客戶端的socket物件 第二客戶端的位址資訊
client,c_address =s.accept()
print("
有乙個連線已建立!")
(c_address)
#給客戶端傳送資料
#5.讀寫資料
#接受資料
res = client.recv(1024)
(res)
#6.關閉連線
#s.close()
importsocket
#1.建立客戶端的socket物件
c =socket.socket()
#2.指定伺服器的ip和port
server_address = ("
127.0.0.1
",8080)
#3.建立連線
c.connect(server_address)
#4.讀寫資料
#傳送資料到伺服器
c.send("
hello 我是客戶端!
".encode("
utf-8"))
#5.關閉連線
c.close()
importsocket
#1.建立socket物件
s = socket.socket(type=socket.sock_dgram)
#2.繫結埠和ip
s.bind(("
127.0.0.1
",10000))
while
true:
#3.接受資料
res = s.recv(1024)
(res)
while
true:
msg = input("
>>>:")
#需要獲取對方的ip和埠
#s.sendto(msg.encode("utf-8"), ("127.0.0.1", 10000))
#關閉資源
s.close()
importsocket
#1.建立socket物件
s = socket.socket(type=socket.sock_dgram)
#2.繫結埠和ip
s.bind(("
127.0.0.1
",10000))
while
true:
#3.接受資料
res = s.recv(1024)
(res)
while
true:
msg = input("
>>>:")
#需要獲取對方的ip和埠
#s.sendto(msg.encode("utf-8"), ("127.0.0.1", 10000))
#關閉資源
s.close()
importsocket
#1.建立socket物件
s = socket.socket(type=socket.sock_dgram)
#2.繫結埠和ip
s.bind(("
127.0.0.1
",10000))
while
true:
#3.接受資料
res = s.recv(1024)
(res)
while
true:
msg = input("
>>>:")
#需要獲取對方的ip和埠
#s.sendto(msg.encode("utf-8"), ("127.0.0.1", 10000))
#關閉資源
s.close()
importsocket
client =socket.socket()
client.connect((
"127.0.0.1
",65535))
while
true:
#傳送client.send(input("
>>>:
").encode("
utf-8"))
#接收data = client.recv(1024).decode("
utf-8")
(data)
if len(data) ==0:
client.close()
break
python 網路程式設計學習 套接字socket
以前也學過套接字程式設計,這次想系統全面的學習下python網路程式設計的使用。做這個,為檢測進度,也為後續留下筆記和足跡。socket 常用函式 socket.gethostname socket.gethostbyname import socket host socket.gethostnam...
Python網路程式設計學習筆記一 socket模組
coding utf 8 主要測試python網路程式設計中socket模組的使用 涉及到的技術點 套接字 面向連線的還有非面向連線套接字 tcp面向連線 udp非面向連線 1 匯入socket 2 建立socket socket三要素 1 socket family,2 socket type 3...
python網路程式設計 TCP網路程式設計
tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...