bind()
函數(shù)是 Socket 編程中用于將套接字綁定到一個(gè)地址(IP 地址和端口號(hào))上的函數(shù)。以下是如何正確使用 bind()
函數(shù)的步驟:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
這里,socket.AF_INET
表示使用 IPv4 地址族,socket.SOCK_STREAM
表示使用 TCP 協(xié)議。根據(jù)你的需求,你也可以選擇其他地址族(如 socket.AF_INET6
用于 IPv6)和協(xié)議(如 socket.SOCK_DGRAM
用于 UDP)。
ip_address = "127.0.0.1" # 要綁定的 IP 地址,可以是本地地址(如 "127.0.0.1")或外部地址(如 "0.0.0.0")
port = 12345 # 要綁定的端口號(hào)
bind()
函數(shù)將套接字綁定到地址:sock.bind((ip_address, port))
這將把套接字 sock
綁定到 ip_address
和 port
上。如果綁定成功,bind()
函數(shù)會(huì)返回 None
,否則會(huì)拋出一個(gè)異常。
sock.setblocking(False)
這將使套接字在等待連接時(shí)變?yōu)榉亲枞J?。在非阻塞模式下?code>accept() 和 connect()
等函數(shù)會(huì)立即返回,而不是阻塞等待。
sock.listen(5)
這將把套接字設(shè)置為監(jiān)聽(tīng)模式,以便接受傳入的連接。5
是隊(duì)列中允許的最大掛起連接數(shù)。
現(xiàn)在,你的套接字已經(jīng)綁定到一個(gè)地址,并準(zhǔn)備好接受傳入的連接。你可以使用 accept()
函數(shù)來(lái)接受客戶端的連接請(qǐng)求。