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