02-TCP网络程序-客户端
目标¶
- 能够编写
tcp网络客户端程序
,进行数据发送
1.tcp客户端构建流程¶
tcp的客户端要比服务器端简单很多,tcp和服务端建立连接后,直接发送数据
2.实现效果¶
3. 实现步骤¶
- 导入 socket 模块
- 创建socket 套接字
- 建立tcp连接(和服务端建立连接)
- 开始发送数据(到服务端)
- 关闭套接字
4.核心方法¶
socket.connect(address)
—— 主动初始化TCP服务器连接。
一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。
addr = ("192.168.31.167",8080)
socket.connect(addr)
或
socket.connect(("192,.168.31.167",8080))
socket.send(要发送的数据)
—— 向服务端发送数据,此处的数据必须是二进制类型
socket.send("你好".encode()) # 发送的为"你好" 的二进制格式
socket.recv(缓冲区大小)
—— 接收TCP数据,数据以二进制形式返回,bufsize指定要接收的最大数据量。
socket.recv(1024) # 接收tcp数据,每次接收1024个字节
5.代码实现¶
# 1、导入socket模块
import socket
# 2、创建socket
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 3、建立tcp连接
tcp_client_socket.connect(("192.168.31.247", 7878))
# 4、开始发送数据
tcp_client_socket.send("哈哈哈,打不过我吧!?".encode("utf-8"))
# 5、关闭套接字
tcp_client_socket.close()
6.tcp客户端发送、接收数据¶
tcp客户端连接服务器后,可以发送数据到服务器端,也可以接收服务器端返回的数据
# 1、导入socket模块
import socket
# 2、创建socket
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 3、建立tcp连接
tcp_client_socket.connect(("192.168.31.163", 7878))
# 4、开始发送数据
tcp_client_socket.send("哈哈哈,打不过我吧!?".encode("utf-8"))
# 开始接收对方回复的数据
recv_data = tcp_client_socket.recv(1024)
print("接收到数据:", recv_data.decode("utf-8"))
# 5、关闭套接字
tcp_client_socket.close()