【脚本编程系列】关于Python网络通讯asyncore,你需要知道的事

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

如何使用asyncore

# -*- coding:utf-8 -*-
import asyncore, socket

class HttpClient(asyncore.dispatcher):
    def __init__(self, host, path):
        asyncore.dispatcher.__init__(self)
        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
        self.connect((host, 80))
        self.buffer = "GET %s HTTP/1.0 \r\n\r\n" %path
    def handle_connect(self):
        pass
    def handle_close(self):
        self.close()
    def handle_read(self):
        print self.recv(1024)
    def handle_write(self):
        sent = self.send(self.buffer)
        self.buffer = self.buffer[sent:]
    def writable(self):
        return (len(self.buffer)>0)
if __name__ == "__main__":
    c = HttpClient("www.python.org","/")
    asyncore.loop()
HTTP/1.1 500 Domain Not Found
Server: Varnish
Retry-After: 0
content-type: text/html
Cache-Control: private, no-cache
connection: keep-alive
Content-Length: 179
Accept-Ranges: bytes
Date: Tue, 13 Jun 2017 08:11:23 GMT
Via: 1.1 varnish
Connection: close


<html>
<head>
<title>Fastly error: unknown domain </title>
</head>
<body>
Fastly error: unknown domain: . Please check that this domain has been added to a service.</body></html>

什么是asyncore

asyncore模块实现异步通信方式,提供了用来构建异步通信方式的客户端和服务器端的基础架构。
尤其适合聊天类的服务器端和协议的实现。
其运行过程是创建一个或多个网络信道;当信道创建后,通过轮询方式来激活网络信道的服务,直到最后一个网络信道关闭。

RISC-V IP中的ITCM/DTCM与Slave-AHB接口设计解析 本文深入解析RISC-V IP中ITCM/DTCM与Slave-AHB接口的设计要点,涵盖TCM架构原理、总线协议实现及性能优化策略。通过实际案例展示如何实现单周期访问延迟,解决跨时钟域同步等关键问题,为嵌入式系统提供确定性内存访问方案。特别探讨了AHB总线仲裁机制和RTL实现技巧,助力开发者构建高效可靠的RISC-V处理器子系统。 阅读详情

相关推荐

《UDS/OBD诊断需求编辑工具》总目录

目录 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 2.1 编辑ODX-D诊断描述文件 2.2 编辑ODX-F刷写软件 该专栏主要负责介绍CANdela Studio和ODX Studio编辑CDD/ODX/PDX诊断描述文件。 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 【ODX介绍 】-1- 标准梳理 【ODX介绍】 -2-如何手..

「汽车电子助手」的博客 1万+

输入网址 网页能打开,但输入ping出来的IP地址,网页却打不开的问题

这两天在创建自己的博客。本来已经到最后一步了。就是创建域名,通过自己的域名可以访问到自己的博客网站。然而这个时候,问题就来了: 输入网址时: 可以进入网站 但当我输入解析的域名时: `` Fastly error: unknown domain: ywj.kim. Please check that this domain has been added to a service. Detai...

Ada_lake的博客 7983

YOLO26模型应用过程中的报错处理及疑问解答,涉及环境搭建、模型训练、模块改进、论文写作

本文记录了YOLO26模型的这一系列过程中可能发生的问题,以及大家非常关心的问题,这里统一做了一个记录和解答。

Limiiiing的博客 189

Error】github pages error

之前子域名A记录解析到github的ip,最近发现github pages打不开了。报错: Fastly error: unknown domain: xxxxxxxx. Please check that this domain has been added to a service. Details: cache-xxxxxx 解决办法: 更换ip为下面几个即可: 185.199....

think_ycx的专栏 3348

出现fatal error怎么解决,聊聊fatal error都有哪些解决方案

当你在使用电脑的过程中,如果出现错误提示:fatal error的窗口时,有什么办法可以解决,电脑出现fatal error 是一个电脑编程术语,表示程序发生了致命错误,导致程序无法继续执行。今天就来聊聊出现fatal error怎么解决?fatal error都有哪些解决方案?

s__777的博客 8179

fatal error怎么解决,有什么快捷的解决方法

fatal error怎么解决,其实是有多种的解决方法的,主要是看你想用哪种解决方法去进行解决,下面一起来看看。

电脑修复君的博客 5万+

应用Python快速实现系统原型

应用Python快速实现系统原型   [摘要] 快速原型是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。Python非常易于使用,并且支持Windows/Mac/Unix/Linux/Solaris多操作系统平台,可以帮助开发人员在这些平台上更迅速地完成任务。同时Python拥有一个强大的基本类库和数量众多的第三方扩展库,所以它的应用范围也比较广泛。文章举例说

taozc的专栏 2640

为什么网站打得开,却ping不通, 网站却打得开

为什么网站打得开,却ping不通2009-02-01 10:13一个菜人 | 分类:网站使用 | 浏览1268次比方我能打开www.58nin.cn,但ping的结果却是Pinging www.pipi.cn [60.191.110.150] with 32 bytes of data:Request timed out.Request timed out.Request timed out.Re

IT技术宅-北方的刀郎 1万+

不加www无法访问的解决方案

打开根目录下的index.asp   你会看到一段如下代码 Const AllowSecondDomain=true '是否允许开启空间二级域名 true-开启 false-不开启   把这个改为 Const AllowSecondDomain=false '是否允许开启空间二级域名 true-开启 false-不开启   保存 并上传 这样就可以了   第二种解决

kikyoar 1338

Python异步通信模块asyncore

Python异步通信模块asyncore介绍Pythonasyncore模块提供了以异步的方式写入套接字服务的客户端和服务器的基础结构。模块主要包括: asyncore.loop(…) - 用于循环监听网络件。loop()函数负责检测一个字典,字典中保存dispatcher的实例。 asyncore.dispatcher类 - 一个底层套接字对象的简单封装。这个类有少数由异步循环调用的,用来

kongxx的专栏 1万+
上一篇: 【脚本语言系列】关于Python网络通讯Twisted网络框架,你需要知道的事
下一篇: 【脚本语言系列】关于PythonWeb服务自动化BeautifulSoup,你需要知道的事
Allen Moore
博客等级 码龄10年 91粉丝 313原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值