📜  serversocket.accept() python (1)

📅  最后修改于: 2023-12-03 15:05:10.753000             🧑  作者: Mango

Python中的serversocket.accept()

在Python的socket编程中,serversocket.accept()是一个非常重要的函数,它可以用来接受连接并返回一个连接对象socket和连接客户端的地址。

函数介绍

serversocket.accept()用来监听指定端口上的连接请求。该函数会使程序阻塞,直到有客户端连接请求到来或服务器停止。

函数参数

serversocket.accept()函数没有参数,它在被调用时会自动监听创建serversocket时指定的IP地址和端口号。

返回值

serversocket.accept()函数会返回一个tuple,包含两个元素:

  1. 一个连接对象socket:表示与客户端建立的连接对象。可以使用该对象进行发送和接收数据等操作。
  2. 一个客户端地址:表示连接到服务器的客户端的地址,通常为一个tuple,包含IP地址和端口号两个元素。

使用示例

import socket

# 创建socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定IP地址和端口号
serversocket.bind(('127.0.0.1', 8888))

# 监听端口,等待客户端连接
serversocket.listen(1)
print('listening...')

# 接受连接,返回一个连接对象socket和客户端地址
clientsocket, address = serversocket.accept()

# 打印客户端地址
print(f'Connection from {address} has been established!')

# 发送欢迎消息给客户端
message = 'Welcome to the server!'
clientsocket.send(message.encode())

# 关闭连接
clientsocket.close()
serversocket.close()

在上面的示例中,我们首先创建一个serversocket对象,并将其绑定到IP地址127.0.0.1和端口号8888上。然后我们使用serversocket.listen()函数来监听端口,等待客户端连接。

接着,我们使用serversocket.accept()函数来接受连接并返回一个连接对象clientsocket和客户端地址address。我们使用print函数打印客户端地址,并使用clientsocket.send()函数向客户端发送一条欢迎消息。最后,我们关闭连接对象和serversocket对象。