用asyncio的异步网络连接来获取sina、sohu和163的网站首页

代码如下:

import asyncio

async def wget(host):
    print(‘wget %s...‘ % host)
    connect = asyncio.open_connection(host, 80)
    reader, writer = await connect
    header = ‘GET / HTTP/1.0\r\nHost: %s\r\n‘ % host
    writer.write(header.encode(‘utf-8‘))
    await writer.drain()
    while True:
        line = await reader.readline()
        if line == b‘\r\n‘:
            break
        print(‘%s header > %s‘ % (host, line.decode(‘utf-8‘).rstrip()))

        writer.close()
loop = asyncio.get_event_loop()
tasks = [wget(host) for host in [‘www.sina.com.cn‘, ‘www.sohu.com‘, ‘www.163.com‘]]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()

上面的写法只适用与python 3.5及其之后的版本,再python 3.5之前,用

请注意,asyncawait是针对coroutine的新语法,要使用新的语法,只需要做两步简单的替换:

  1. @asyncio.coroutine替换为async
  2. yield from替换为await

原文地址:https://www.cnblogs.com/ncuhwxiong/p/8183035.html

时间: 2024-10-10 21:03:27

用asyncio的异步网络连接来获取sina、sohu和163的网站首页的相关文章

教你如何封装异步网络连接NSURLConnection实现带有百分比的下载

教你如何封装异步网络连接NSURLConnection实现带有百分比的下载 注:本教程需要你对block有着较为深刻的理解,且对如何封装对象有着一些经验. 也许你已经用惯了AFNetworking2.0,或者是ASIHTTPRequest(这个已经都不更新了,还不支持ARC,放弃为妙^_^),或者还有其他轻量级的开源代码.用着是很爽,但有时候我们只想实现简单的功能,用不着那么复杂,而且,那些开源代码太多,我们很难理解,那就尝试一下自己封装一个简单的吧. NSURLConnection有着两种类型

android 网络连接 wifi gprs的连接

package com.example.androidday15_network1; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo.State; import android.os.Bundle; import andr

Android 判断当前网络连接类型

实际应用开发时,如果存在需要用户获取大量数据的情况,最好是先判断下网络类型,提示用户当前的网络类型,是否需要连接Wifi,etc.(手机流量太贵啦,当然土豪是无视这玩意的, (/ □ \)). 定义网络连接类型: public static final int NETTYPE_NULL = 0x00; //未连接网络 public static final int NETTYPE_WIFI = 0x01; //WIFI public static final int NETTYPE_MOBILE

IOS检测网络连接状态(转)

IOS检测网络连接状态(转) 使用之前请从Apple网站下载示例:点此下载 然后将Reachability.h 和 Reachability.m 加到自己的项目中,并引用 SystemConfiguration.framework,就可以使用了. Reachability 中定义了3种网络状态: // the network state of the device for Reachability 1.5. typedef enum { NotReachable = 0, //无连接 Reach

android中NetWorkReceive以及获取当前的网络连接状态详解

我们现在APP是断然很难离开网络存活下去,会有很多很频繁的网络操作,请求数据,传递数据等等,所以,我们需要对网络状态有多一点的了解. 首先,假如我们的APP在运行的时候,假如这时候用户掉线了,没有网络了,我们就应该给用户提示,然后用户连上网络了,我们这时候应该也给用户提示,这样他就可以继续玩我们的APP,我们应该怎么做了,没错,就是通过Receiver来实现,因为断网和联网系统都会发送广播,然后,我们可以收到,通过广播去判断当前的网络是否可用,具体代码如下:其中,接受广播需要的action是"a

Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面

http://www.mobiletuts.me 获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityManager  类,用于网络连接状态的检测. Android开发文档这样描述ConnectivityManager 的作用: Class that answers queries about the state of network connectivi

Android编程 获取网络连接状态 及调用网络配置界面

获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityManager 类,用于网络连接状态的检测. Android开发文档这样描述ConnectivityManager的作用: Class that answers queries about the state of network connectivity. It also notifies applic

获取当前电脑所有网络连接名字

 最近因为项目有需要获取本机的所有存在的网络连接名称,在网上也找了资料,有好几种方法,不过就只有一种是能够达到我想要的要求 写下来给大家参考下 第一种方法:遍历注册表来获取 void __fastcall MyGetLanAdapterName(char *szLanAdapterName) { HKEY hKey, hSubKey, hNdiIntKey; if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Con

android 获取网络连接信息

效果图: 工具类 /** * 获取网络连接信息 * * 根据NetworkInfo可以知道有很多的连接方式和信息 * * ① 当没有任何可用网络的时候,networkinfo为null 判断networkinfo是否为null * * ② 当只有wifi网络或者wifi网络和移动网络同时存在的时候,返回wifi网络连接信息 * * NetworkInfo参数如下: * * detailedState:CONNECTED(连接状态) * * extraInfo:yiteng1(wifi网络名称)