"""一、TCP客户端程序开发流程:
1、导入socket模块
2、创建TCP套接字‘socket’
参数1: ‘AF_INET’, 表示IPv4地址类型
参数2: ‘SOCK_STREAM’, 表示TCP传输协议类型
3、发送数据‘send’
参数1: 要发送的二进制数据, 注意: 字符串需要使用encode()方法进行编码
4、接收数据‘recv’
参数1: 表示每次接收数据的大小,单位是字节
5、关闭套接字‘socket’表示通信完成
二、socket类的介绍
1、导入socket模块:import socket
2、创建客户端socket对象: socket.socket(AddressFamily, Type)
AddressFamily:表示IP地址类型, 分为TPv4和IPv6
Type:表示传输协议类型
3、方法说明:
connect((host, port)) 表示和服务端套接字建立连接, host是服务器ip地址,port是应用程序的端口号
send(data) 表示发送数据,data是二进制数据
recv(buffersize) 表示接收数据, buffersize是每次接收数据的长度
三、采用网络调试助手作为服务端,进行TCP客户端程序的测试"""
#1. 导入socket模块
importsocket#2. 创建tcp客户端socket对象#2.1 AF_INET: 表示ipv4地址类型, AF_INET6表示ipv6地址类型#2.2 SOCK_STREAM: 表示传输协议类型是tcp
tcp_client_socket =socket.socket(socket.AF_INET, socket.SOCK_STREAM)#3. 建立连接, 本质上和服务端套接字建立连接#connect((host, port)) 表示和服务端套接字建立连接, host是服务器ip地址,port是应用程序的端口号#注意:此处的端口号是数字型,例如写9090,,不能写字符串“9090”#注意:connect(("192.168.1.235", 9090)),里面是元组
tcp_client_socket.connect(("192.168.1.235", 9090))#代码能够执行到此,说明连接建立成功
#content = "我是客户端"
content = input("请输入客户端需要发送的内容:")#对字符串数据进行编码#提示: windows的网络调试助手使用gbk编码, ubantu的网络调试助手使用utf-8
data = content.encode("utf-8")#4. 给服务程序发送数据
tcp_client_socket.send(data)#5. 接收服务程序发送的数据#1024单位是字节, 每次接收的最大字节数
recv_data = tcp_client_socket.recv(1024)#对二进制数据进行解码, , errors="ignore" 表示对应解码不成功的数据进行忽略,保证程序不崩溃
recv_content = recv_data.decode("utf-8")print("服务端接收到的数据:", recv_content)#6. 关闭套接字
tcp_client_socket.close()