使用Python中的Server()函数实现网络通信
发布时间:2024-01-01 01:58:01
在Python中,可以使用socket模块中的Server()函数来实现网络通信。Server()函数用于创建服务器端的socket对象,并接受客户端的连接请求。
下面是一个使用Server()函数实现简单网络通信的例子:
import socket
def run_server():
# 创建服务器端的socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_address = ("127.0.0.1", 8888)
server_socket.bind(server_address)
# 设置最大连接数
server_socket.listen(5)
print("服务器已启动,等待客户端连接...")
while True:
# 接受客户端的连接请求,建立连接
client_socket, client_address = server_socket.accept()
print("客户端连接成功:", client_address)
try:
# 接收客户端发送的数据
data = client_socket.recv(1024)
print("接收到客户端的数据:", data.decode())
# 向客户端发送数据
response = "Hello, client!"
client_socket.send(response.encode())
except Exception as e:
print("与客户端通信出现异常:", e)
finally:
# 关闭客户端连接
client_socket.close()
if __name__ == "__main__":
run_server()
在上述例子中,我们创建了一个简单的服务器,绑定了IP地址为127.0.0.1、端口号为8888的地址。然后使用Server()函数监听连接请求,并在接受到客户端的连接后,接收客户端发送的数据,并向客户端发送响应数据。
使用客户端可以通过以下代码向服务器发送数据并接收响应:
import socket
def run_client():
# 创建客户端的socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 服务器的IP地址和端口号
server_address = ("127.0.0.1", 8888)
# 连接服务器
client_socket.connect(server_address)
try:
# 向服务器发送数据
request = "Hello, server!"
client_socket.send(request.encode())
# 接收服务器的响应数据
response = client_socket.recv(1024)
print("接收到服务器的数据:", response.decode())
except Exception as e:
print("与服务器通信出现异常:", e)
finally:
# 关闭与服务器的连接
client_socket.close()
if __name__ == "__main__":
run_client()
在上述客户端代码中,我们创建了一个客户端的socket对象,并通过connect()方法连接到服务器的IP地址和端口号。然后,使用send()方法向服务器发送数据,并使用recv()方法接收服务器的响应数据。
整个程序实现了简单的服务器和客户端的通信。当客户端向服务器发送数据后,服务器接收到数据并打印,然后向客户端发送响应数据。客户端接收到服务器的响应数据并打印。
