socket概念 套接字
阿新 • • 發佈:2018-05-03
抽象 mage 聯網 接收 lang accept 監聽鏈接 主機 alt
理解socket
Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口後面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數據,以符合指定的協議。
其實站在你的角度上看,socket就是一個模塊。我們通過調用模塊中已經實現的方法建立兩個進程之間的連接和通信。
也有人將socket說成ip+port,因為ip是用來標識互聯網中的一臺主機的位置,而port是用來標識這臺機器上的一個應用程序。
所以我們只要確立了ip和port就能找到一個應用程序,並且使用socket模塊來與之通信。
socket層
套接字(socket)初使用
基於TCP協議的socket
tcp是基於鏈接的,必須先啟動服務端,然後再啟動客戶端去鏈接服務端
server端
import socket sk = socket.socket() sk.bind((‘127.0.0.1‘,8898)) #把地址綁定到套接字 這個ip地址和端口是輸入你想進行連接的地址和端口 sk.listen() #監聽鏈接 conn,addr = sk.accept() #接受客戶端鏈接 ret = conn.recv(1024) #接收客戶端信息 print(ret) #打印客戶端信息conn.send(b‘hi‘) #向客戶端發送信息 conn.close() #關閉客戶端套接字 sk.close() #關閉服務器套接字(可選)
client端
import socket sk = socket.socket() # 創建客戶套接字 sk.connect((‘127.0.0.1‘,8898)) # 嘗試連接服務器 sk.send(b‘hello!‘) ret = sk.recv(1024) # 對話(發送/接收) print(ret) sk.close() # 關閉客戶套接字
socket概念 套接字