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:




  • 相关阅读:
    发现pythonWin里面的一个地方挺别扭
    细节-质量-态度
    对于Borland出售IDE业务的一点感想
    ReView100遍?!
    代码生成原则Top10
    使用asp.net进行多关键字查询的例子
    代码生成FAQ(翻译)
    msdn中文上的几篇有用的sqlServer2000的文章
    RSS 阅读工具Omea Reader
    Ubuntu18.04 安装Postgresql12
  • 原文地址:https://www.cnblogs.com/lvlang/p/10586423.html
Copyright © 2011-2022 走看看