python3 端口监听

易晨然 3个月前 44浏览 0评论

Python3能够通过端口监听的方式,实现与外部环境之间的通信及数据传输操作。本文将详细介绍Python3的端口监听操作,并提供一些实用示例。

实现端口监听

Python3提供了socket库,用于创建套接字对象,实现端口监听操作。创建套接字可以使用如下代码:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

其中,AF_INET代表套接字地址(因特网地址族),SOCK_STREAM代表套接字类型(TCP套接字)。

创建套接字之后,还需将其绑定到指定的本地端口(通常都是1024以上的端口),绑定端口可以使用如下代码:

sock.bind(('localhost', 8000))

其中,bind()方法中的参数是一个元组,参数1代表服务器地址,参数2代表端口号。

绑定端口之后,还需监听端口,等待客户端发送连接请求,等待连接请求可以使用如下代码:

sock.listen(5)

其中,listen()方法的参数代表等待连接队列的最大长度,可以根据实际需求设置。

实用示例

下面是一个简单的TCP服务器示例,用于接收客户端发送的数据,并回传一个确认消息:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('localhost', 8000))
sock.listen(5)

while True:
    # 等待客户端连接
    print('Waitting for connection...')
    client_sock, client_addr = sock.accept()
    print('Connected by', client_addr)
    
    # 接收客户端发送的消息
    while True:
        data = client_sock.recv(1024)
        if not data:
            break
        print('Received:', data.decode())
    
        # 回传确认消息
        msg = 'ACK: ' + data.decode()
        client_sock.send(msg.encode())
    
    client_sock.close()
    print('Connection closed.')

上述代码创建了一个TCP服务器,监听本地8000端口。当客户端连接后,服务器会接收客户端发送的消息,并回传一个确认消息。

此外,Python3还提供了其他一些基于socket库的端口监听操作,如UDP端口监听、IPv6端口监听等。

总之,Python3的端口监听操作为程序实现与外部环境之间的通信及数据传输提供了便利,而且使用socket库进行监听,非常简单易懂,适合各类Python开发者使用。希望本文对您有所帮助。