TCP客户端程序开发流程介绍
AddressFamily表示IP地址类型,分为IPv4和IPv6
Type表示传输协议类型
方法说明
网络中必须传输二进制的数据
字符串转化为二进制encode("utf-8")
二进制转化成字符串decode("utf-8")
注意:utf8编码的数据必须用utf8解码
import socket
# 1 创建客户端套接字对象(买电话)
# 参数1: ipv4(ip协议的版本)
# 参数2: 选择协议(SOCK_STREAM==> TCP协议)
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2 和服务端套接字建立连接(打电话)
# 参数: 元组(有两个元素!!!)
# 元素1: 服务器的IP地址(字符串)
# 元素2: 服务器的端口号(数字)
tcp_client_socket.connect(("192.168.1.105", 8080))
# 发送数据的时候需要先转化成二进制
data = "123"
# 编码
data = data.encode("utf8")
# 3 发送数据(说话)
tcp_client_socket.send(data)
# 4 接收数据(聆听)
# 参数: 以字节为单位的接受的数据的大小
# 注意: recv会阻塞等待数据的到来
recv_data = tcp_client_socket.recv(1024)
# 解码
recv_data = recv_data.decode("utf8")
print(recv_data)
# 5 关闭客户端套接字
tcp_client_socket.close()
在虚拟机Linux系统打开网络调试助手,选择TCP服务器,连接网络,运行程序,可以看到服务器接收到了数据
服务端
这时我们输入aaa,点击发送,在Pycharm中可以看到接收了服务器的数据。