Python – 使用套接字绑定和监听
套接字编程是一种连接网络上的两个节点以相互通信的方式。一个套接字(节点)在 IP 的特定端口上侦听,而另一个套接字伸手到另一个以形成连接。服务器形成侦听器套接字,而客户端伸手到服务器。
注意:有关更多信息,请参阅Python中的套接字编程
使用套接字绑定和监听
服务器有一个 bind() 方法,它将它绑定到特定的 IP 和端口,以便它可以侦听该 IP 和端口上的传入请求。服务器有一个listen()
方法,该方法将服务器置于监听模式。这允许服务器监听传入的连接。最后一个服务器有一个accept()
和close()
方法。 accept 方法启动与客户端的连接,close 方法关闭与客户端的连接。
例子
import socket
import sys
# specify Host and Port
HOST = ''
PORT = 5789
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
# With the help of bind() function
# binding host and port
soc.bind((HOST, PORT))
except socket.error as message:
# if any error occurs then with the
# help of sys.exit() exit from the program
print('Bind failed. Error Code : '
+ str(massage[0]) + ' Message '
+ massage[1])
sys.exit()
# print if Socket binding operation completed
print('Socket binding operation completed')
# With the help of listening () function
# starts listening
soc.listen(9)
conn, address = soc.accept()
# print the address of connection
print('Connected with ' + address[0] + ':'
+ str(address[1]))
- 首先,我们导入必要的套接字。
- 然后我们创建了一个套接字对象并在我们的电脑上保留了一个端口。
- 之后,我们将我们的服务器绑定到指定的端口。传递一个空字符串意味着服务器也可以监听来自其他计算机的传入连接。如果我们通过了 127.0.0.1,那么它只会监听本地计算机内的那些调用。
- 之后,我们将服务器置于监听模式。这里的 9 表示如果服务器繁忙,则保持 9 个连接等待,如果第 10 个套接字尝试连接,则连接被拒绝。
现在我们需要一个服务器可以与之交互的东西。我们可以这样对待服务器,只是为了知道我们的服务器正在工作。在终端中键入以下命令:
# start the server
$ python server.py
保持上面的终端打开现在打开另一个终端并输入:
$ telnet localhost 12345
输出: