socket的receive方法可以用來(lái)從socket中接收數(shù)據(jù)。
使用方法如下:
import socket
# 創(chuàng)建TCP socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 設(shè)置socket選項(xiàng)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 綁定地址和端口
s.bind(('localhost', 8080))
# 監(jiān)聽(tīng)
s.listen(5)
# 接受連接
conn, addr = s.accept()
# 接收數(shù)據(jù)
data = conn.recv(1024)
# 處理接收到的數(shù)據(jù)
print(data.decode())
# 關(guān)閉連接
conn.close()
在上面的示例代碼中,conn是一個(gè)已經(jīng)建立好的連接,使用conn.recv()方法可以接收數(shù)據(jù)。參數(shù)1024表示一次最多接收1024字節(jié)的數(shù)據(jù),如果接收到的數(shù)據(jù)超過(guò)1024字節(jié),可以多次調(diào)用recv()方法來(lái)接收剩余的數(shù)據(jù)。
注意:在TCP連接中,接收端和發(fā)送端要使用相同的接收和發(fā)送緩沖區(qū)大小,否則可能會(huì)導(dǎo)致數(shù)據(jù)丟失或粘包問(wèn)題。