套接字(socket)是計算機之間進行通信的一種技術,它允許不同主機上的行程之間進行資料交換,在Python中,我們可以使用socket模塊來創建和使用套接字,
首先,我們需要匯入socket模塊:
import socket
在網路編程中,有兩種主要型別的套接字:流套接字(Stream Sockets)和資料報套接字(Datagram Sockets),流套接字使用傳輸控制協議(TCP)進行通信,而資料報套接字使用用戶資料報協議(UDP)進行通信,我們將主要關注TCP套接字,因為它們更常用且提供了可靠的雙向通信,
創建套接字
要創建一個TCP套接字,我們可以使用socket.socket()函式:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
這里,socket.AF_INET表示我們使用IPv4地址,socket.SOCK_STREAM表示我們使用TCP協議,
系結套接字
創建套接字后,我們需要將其系結到一個地址和埠,這可以使用bind()方法完成:
address = ('localhost', 12345)
s.bind(address)
這里,我們系結了套接字到本地地址('localhost')和埠(12345),
監聽連接
在系結套接字后,我們需要開始監聽客戶端的連接,我們可以使用listen()方法來實作這一點:
s.listen(5)
這里的數字5表示允許的最大連接數,
接受連接
當有客戶端嘗試連接時,我們可以使用accept()方法來接受連接,這將回傳一個新的套接字物件和客戶端地址:
client_socket, client_address = s.accept()
發送和接收資料
現在我們已經建立了連接,可以使用send()和recv()方法發送和接收資料,例如:
data = https://www.cnblogs.com/yaoqian/archive/2023/06/08/client_socket.recv(1024) # 接收最多1024位元組的資料
client_socket.send(b'Hello, client!') # 發送資料
請注意,我們需要使用位元組型別的資料進行通信,
關閉套接字
通信完成后,我們需要關閉套接字以釋放資源,我們可以使用close()方法來實作這一點:
client_socket.close()
s.close()
這就是一個簡單的TCP套接字服務器的基本結構,為了讓您更好地理解,這里有一個完整的示例:
TCP服務器示例
import socket
def main():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
address = ('localhost', 12345)
s.bind(address)
s.listen(5)
print("Waiting for connections...")
client_socket, client_address = s.accept()
print(f"Connected to {client_address}")
data = https://www.cnblogs.com/yaoqian/archive/2023/06/08/client_socket.recv(1024)
print(f"Received: {data}")
client_socket.send(b'Hello, client!')
client_socket.close()
s.close()
if __name__ == '__main__':
main()
這個示例展示了如何創建一個簡單的TCP服務器,它接受來自客戶端的連接和資料,并向客戶端發送一條訊息,您可以根據自己的需求修改這個示例,以實作不同的功能,
推薦閱讀:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/554701.html
標籤:其他
上一篇:國企真的這么香嗎?軟體測驗工程師國企真物體驗:“每天過的像打仗一樣!”
下一篇:返回列表
