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