MST

星途 面试题库

面试题:Python 客户端服务器网络编程之套接字基础

在Python的客户端服务器网络编程中,使用`socket`模块创建一个简单的TCP服务器和客户端。服务器需要能够接收客户端发送的字符串,并将该字符串反转后回传给客户端。请描述实现思路并给出核心代码。
26.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 服务器端
    • 导入socket模块。
    • 创建一个TCP套接字对象。
    • 将套接字绑定到指定的地址和端口。
    • 开始监听传入的连接。
    • 接受客户端连接,接收客户端发送的字符串,将其反转后回传给客户端。
    • 关闭连接。
  2. 客户端
    • 导入socket模块。
    • 创建一个TCP套接字对象。
    • 连接到服务器的地址和端口。
    • 发送字符串到服务器,接收服务器回传的反转后的字符串并打印。
    • 关闭连接。

核心代码

服务器端代码

import socket

# 创建TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定地址和端口
server_address = ('localhost', 12345)
server_socket.bind(server_address)

# 开始监听
server_socket.listen(1)
print('等待客户端连接...')

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

# 接收客户端发送的字符串
data = client_socket.recv(1024).decode('utf-8')
print('接收到的数据:', data)

# 反转字符串
reversed_data = data[::-1]

# 将反转后的字符串回传给客户端
client_socket.send(reversed_data.encode('utf-8'))

# 关闭连接
client_socket.close()
server_socket.close()

客户端代码

import socket

# 创建TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接到服务器
server_address = ('localhost', 12345)
client_socket.connect(server_address)

# 发送字符串到服务器
message = 'Hello, Server!'
client_socket.send(message.encode('utf-8'))

# 接收服务器回传的反转后的字符串
reversed_message = client_socket.recv(1024).decode('utf-8')
print('接收到反转后的消息:', reversed_message)

# 关闭连接
client_socket.close()