TCP基本語法

江寒雨發表於2024-03-20

TCP基本語法

Cilent

# ### TCP協議 客戶端
import socket
# 1.建立一個socket物件
sk = socket.socket()

# 2.與服務端建立連線
sk.connect( ("127.0.0.1" , 9000) )

# 3.收發資料的邏輯
"""傳送的資料型別是二進位制位元組流"""
"""b開頭的字串是二進位制位元組流格式,要求字元型別必須是ascii編碼"""
sk.send("今天我們學習網路程式設計".encode()) 

# 接受資料
res = sk.recv(1024)
print(res.decode())
# 4.關閉連線
sk.close()


Sever

# ### socket 服務端
"""
一發一收是一對,不匹配會導致資料異常
send 傳送 recv 接受
"""
import socket

# 1.建立一個socket物件
sk = socket.socket()

# 一個埠繫結多個程式(僅在測試時使用)
# sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)

# 2.在網路中註冊該主機(繫結對應的ip和埠號) 
sk.bind(  ("127.0.0.1" , 9000) )
# 3.開啟監聽
sk.listen()

# 4.三次握手
conn,addr = sk.accept()  # conn就是客戶端連結過來而在服務端為期生成的一個連結例項

# 5.收發資料的邏輯

# 接受資料
"""一次最多接受1024個位元組"""
res = conn.recv(1024)
print(res)
print(res.decode())

# 傳送資料
conn.send("好好學習,天天向上".encode())


# 6.四次揮手
conn.close()

# 7.退還埠
sk.close()