MST

星途 面试题库

面试题:Python构建灵活TCP客户端之基础实现

请使用Python编写一个简单的TCP客户端程序,实现向指定服务器发送一条消息并接收服务器的响应。要求使用`socket`模块,简述实现过程中建立连接、发送数据和接收数据的关键步骤。
30.2万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

以下是Python编写的简单TCP客户端程序示例:

import socket

# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 服务器地址和端口
server_address = ('127.0.0.1', 12345)

# 建立连接
client_socket.connect(server_address)

# 发送数据
message = "Hello, Server!"
client_socket.sendall(message.encode('utf-8'))

# 接收数据
data = client_socket.recv(1024)
print(f"Received: {data.decode('utf-8')}")

# 关闭连接
client_socket.close()

实现过程关键步骤

  1. 建立连接
    • 使用socket.socket(socket.AF_INET, socket.SOCK_STREAM)创建一个TCP套接字对象,AF_INET表示使用IPv4地址,SOCK_STREAM表示使用TCP协议。
    • 调用socket.connect(address)方法连接到指定服务器,address是一个包含服务器IP地址和端口号的元组。
  2. 发送数据
    • 使用socket.sendall(data)方法发送数据,data需要是字节类型,所以一般使用字符串的encode('utf-8')方法将字符串转换为字节类型后发送。sendall方法会尝试发送所有数据,直到发送完成或出现错误。
  3. 接收数据
    • 使用socket.recv(bufsize)方法接收数据,bufsize指定接收数据的最大缓冲区大小。接收到的数据是字节类型,通常使用decode('utf-8')方法将其转换为字符串进行显示或进一步处理。