• 【Python高级编程023 ● 网络编程 ● TCP客户端程序开发】



    ---------Python基础编程---------

    Author : AI菌


    【内容讲解】

    一、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客户端程序的测试

    【代码演示】

    """
    一、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模块
    import socket
    
    # 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()

    【运行结果】

    TCP客户端程序:

    请输入客户端需要发送的内容:我是客户端
    服务端接收到的数据: 我是服务端

    作为TCP服务端的网络调试助手:

    【往期精彩】

    ▷【Python基础编程196 ● 读取文件的4种方式】
    ▷【Python基础编程197 ● 读取文件的4种方式】
    ▷【Python基础编程198 ● 读取文件的4种方式】
    ▷【Python基础编程199 ● Python怎么读/写很大的文件】
    ▷【Python基础编程200 ● 读取文件的4种方式】
    ▷【Python基础编程201 ● 读取文件的4种方式】
    ▷【Python基础编程202 ● 读取文件的4种方式】
    ▷【Python基础编程203 ● 读取文件的4种方式】

    【加群交流】



  • 相关阅读:
    [BJOI2006]狼抓兔子
    hdu 1878 欧拉回路,图的连通性判断
    poj 3844 Divisible Subsequences 剩余类,组合计数
    LA 4609 ,poj 3842 An Industrial Spy
    hdu 4639 2013多校第四场 hehe Fibonacci 数列,组合计数,字符串处理
    hdu 4642 Fliping game 翻硬币游戏 抓住特征变量
    13多校#4 ,组队赛#18 总结
    ACM 大牛的博客
    LA 4329 Ping Pong 2008 北京区域赛 H , BIT 二叉索引树(树状数组)的应用
    poj 2689 Prime Distance 二次筛法,找出给定区间所有约数
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/13647742.html
Copyright © 2020-2023  润新知