欢迎访问宙启技术站
智能推送

手把手教你在Python中使用accept()方法处理Socket连接

发布时间:2023-12-23 02:50:39

在Python中,我们可以使用Socket库来创建网络连接。当客户端和服务器需要建立连接时,服务器上的Socket对象将等待客户端连接请求。当服务器接收到客户端的连接请求后,我们可以使用Socket对象的accept()方法来接受连接,并创建一个新的Socket对象来处理客户端请求。

下面是一个使用accept()方法处理Socket连接的例子:

import socket

# 创建一个TCP/IP socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定服务器地址和端口号
server_address = ('localhost', 8000)
server_socket.bind(server_address)

# 监听来自客户端的连接请求
server_socket.listen(1)

print('等待客户端连接...')

while True:
    # 接受客户端的连接请求
    client_socket, client_address = server_socket.accept()
    print('已连接客户端:', client_address)

    try:
        # 接收客户端发送的数据
        data = client_socket.recv(1024)
        print('接收到数据:', data.decode())

        # 向客户端发送响应
        response = 'HTTP/1.1 200 OK\r
Content-Type: text/html\r
\r
Hello, World!'
        client_socket.sendall(response.encode())

        # 关闭当前连接
        client_socket.close()
        print('已关闭连接.')
    except Exception as e:
        print('连接异常:', e)

在上面的例子中,先创建了一个TCP/IP的Socket对象(server_socket),然后绑定了服务器的地址和端口号。接下来,通过调用listen()方法开始监听来自客户端的连接请求。

在无限循环中,使用accept()方法接受客户端的连接请求,并返回一个新的Socket对象(client_socket)来处理客户端请求。我们可以使用recv()方法来接收客户端发送的数据,然后使用sendall()方法向客户端发送响应。

最后,我们关闭与客户端的连接,然后继续等待下一个客户端连接请求。

通过这个例子,我们可以学习如何使用accept()方法来处理Socket连接,在Python中创建一个简单的TCP服务器。当客户端连接到服务器时,可以向服务器发送请求并接收服务器的响应。