• python TCP编程小试牛刀


    学习自廖雪峰的python教程,代码也是参照着他的教程敲的。

    这个例子是一个TCP客户端python编程的例子,

    (1)首先建立一个TCP的socket

    (2)然后调用socket的方法与服务器进行连接

    (3)连接之后给服务器发送一条HTTP请求

    (4)接收服务器返回的HTTP响应(包括包头和HTML数据)

    (5)关闭连接,把接收到的数据打印或另存

    # -*- coding: utf-8 -*-   声明编码格式为utf-8使支持中文
    
    #导入socket库
    import socket
    
    '''创建一个socket,
    AF_INET表示用ipv4协议,AF_INET6表示ipv6协议,
    SOCK_STREAM指定使用面向流的TCP协议'''
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #建立连接
    s.connect(('www.sina.com.cn',80))
    
    #给服务器发送HTTP请求命令
    s.send(b'GET / HTTP/1.1
    Host: www.sina.com.cn
    Connection: close
    
    ')
    
    #接收数据
    buffer = []
    while True:
        #recv(maxBytes)设置每次最多接收1k字节
        d = s.recv(1024)
        if d:
            buffer.append(d)
        else:
            break
    data = b''.join(buffer)
    
    #关闭连接
    s.close()
    
    #接收到的是二元组:(HTTP响应头,html文件数据)
    header, html = data.split(b'
    
    ', 1)
    print(header.decode('utf-8')) #把HTTP响应头打印出来
    #把接收到的html数据写入文件
    with open('sina.html', 'wb') as f:
        f.write(html)
    


    程序运行后打印的HTTP header:



    然后同目录下会产生一个sina.html,也就是新浪网主页的html:




  • 相关阅读:
    HDU
    HDU
    HDU
    2016蓝桥杯省赛C/C++A组第二题 跳蚱蜢
    2016蓝桥杯决赛C/C++A组第四题 路径之谜
    【洛谷P2397】yyy loves Maths VI (mode)【模拟】
    【洛谷P2397】yyy loves Maths VI (mode)【模拟】
    【NOIP2018】【洛谷P5017】摆渡车【DP】
    【NOIP2018】【洛谷P5017】摆渡车【DP】
    2018NOIP普及组 划水记
  • 原文地址:https://www.cnblogs.com/lvlang/p/10586423.html
Copyright © 2020-2023  润新知