用Python编写一个简单的网络服务器程序
发布时间:2023-12-04 11:13:04
以下是一个简单的使用Python编写的网络服务器程序的示例:
import socket
def handle_client(client_socket):
# 从客户端接收数据
request = client_socket.recv(1024)
print("Received:", request.decode())
# 向客户端发送响应
response = "Hello from the server!"
client_socket.send(response.encode())
# 关闭客户端连接
client_socket.close()
def run_server():
# 创建一个套接字对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_address = ('localhost', 8000)
server_socket.bind(server_address)
print("Server is running on", server_address)
# 监听连接
server_socket.listen(1)
while True:
# 等待客户端连接
print("Waiting for client...")
client_socket, client_address = server_socket.accept()
print("Client connected:", client_address)
# 处理客户端请求
handle_client(client_socket)
if __name__ == '__main__':
run_server()
上述代码定义了一个简单的网络服务器程序。在主函数run_server()中,首先创建了一个套接字对象,并通过bind()方法将服务器的IP地址和端口号绑定到套接字上。然后,通过listen()方法开启监听模式,指定最大的连接数量为1。
在一个无限循环中,服务器通过accept()方法等待客户端的连接请求。一旦有客户端连接成功,服务器会打印出客户端的IP地址和端口号,并通过handle_client()函数处理客户端的请求。
handle_client()函数首先从客户端接收数据,然后打印出接收到的请求信息。接下来,服务器生成一个响应字符串,并通过send()方法将响应发送回客户端。最后,服务器关闭与该客户端的连接。
该服务器程序支持多个客户端的连接,但是每次只能处理一个客户端。若有多个客户端同时连接,服务器会依次处理每个客户端的请求。
要使用该服务器程序,可以运行上述代码,然后使用一个网络客户端(如Telnet或浏览器)连接到服务器的IP地址和端口号上。连接成功后,服务器会向客户端发送一条欢迎消息,并关闭与客户端的连接。
以上是一个简单的网络服务器程序的示例,它可以作为一个基础框架,可以根据实际需求进行扩展和改进。
