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:




  • 相关阅读:
    索引自我总结
    面试经典问题---数据库索引B+、B-树
    聚簇索引和非聚簇索引
    SQL2005/2008 无法连接错误
    使用SignalR实现消息提醒
    NHibernate Profiler使用方法
    Mvc model验证总结
    C# Lambda表达式
    ASP.NET MVC Razor
    msysGit管理GitHub代码
  • 原文地址:https://www.cnblogs.com/lvlang/p/10586423.html
Copyright © 2011-2022 走看看