zoukankan      html  css  js  c++  java
  • 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:




  • 相关阅读:
    多表联查统计数字
    在null情况下判断
    一个搜索框实现同一表内多个属性的搜索
    分页固定显示信息数
    git常用命令
    java 常用知识点
    Win10 系统直接在目录下打开cmd
    Linux环境 通过sftp启动jar包
    使用Navicat导出可执行脚本 SqlServer数据库某表的部分数据
    C#常用快捷键
  • 原文地址:https://www.cnblogs.com/lvlang/p/10586423.html
Copyright © 2011-2022 走看看