下面是一个使用Python socket编写的多线程程序的示例:
import socket
import threading
# 客户端处理线程
def handle_client(client_socket):
while True:
# 接收客户端发送的数据
data = client_socket.recv(1024)
if not data:
break
# 处理数据
response = "Hello, {}".format(data.decode())
# 发送响应数据给客户端
client_socket.send(response.encode())
# 关闭客户端连接
client_socket.close()
# 服务器主函数
def main():
# 创建一个TCP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_socket.bind(('localhost', 8888))
# 监听客户端连接
server_socket.listen(5)
print("服务器已启动,监听端口: 8888")
while True:
# 等待客户端连接
client_socket, client_address = server_socket.accept()
print("接受新的连接,客户端地址: %s:%s" % client_address)
# 创建新的线程处理客户端请求
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
if __name__ == '__main__':
main()
这个程序创建了一个简单的服务器,监听本地主机的8888端口。当客户端连接成功后,会创建一个新的线程来处理客户端的请求。在新线程中,首先接收客户端发送的数据,然后根据接收到的数据生成响应数据,并将响应发送给客户端。当客户端关闭连接时,线程结束,并且关闭与客户端的连接。
你可以根据实际需求修改代码中的IP地址、端口号和处理逻辑。