`
lht
  • 浏览: 199817 次
  • 来自: 深圳
社区版块
存档分类
最新评论

asyncore udp 编程

阅读更多
asyncore 是python自带的异步编程框架,非常适合进行支持select的socket编程,又不用注意很多异步编程的细节。自带的文档的 例子是tcp协议的编程,下面是一个udp协议的例子:


import asyncore, socket

class Client(asyncore.dispatcher):
    def __init__(self, localAddr, remoteAddr):
        asyncore.dispatcher.__init__(self)
        self.localAddr = localAddr
        self.remoteAddr = remoteAddr
        self.pendingPacket = []
        self.create_socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.bind(localAddr)

    def send(self, packet):
        self.pendingPacket.append(packet)

    def writeable(self):
        return len(self.pendingPacket) > 0

    def handle_write(self):
        if len(self.pendingPacket) > 0:
            p = self.pendingPacket.pop(0)
            self.sendto(p, remoteAddr)

    def handle_read(self):
         data, addr = self.recvfrom(64*1024)
         print repr(data), repr(addr)

    def handle_close(self):
        self.close()

    def handle_error(self):
        logging.error('bad')

    def handle_connect(self):
        pass

def main():
    qq = Client(('', 4000), ('127.0.0.0', 8000))
    qq.send('')
    while 1:
        try:   
            asyncore.loop(timeout=1.0, count = 1)
        except KeyboardInterrupt:
            break
if __name__ == '__main__':
    main()


分享到:
评论

相关推荐

    Python中asyncore的用法实例

    本文实例讲述了python中asyncore模块的用法,分享给大家供大家参考。具体方法如下: 实例代码如下: ##asyncore import asyncore,socket ######################################################################...

    Python学习之asyncore模块用法实例教程

    本文以实例分析了Python中asyncore模块的原理及用法,分享给大家供大家参考。具体分析如下: asyncore库是python的一个标准库,它是一个异步socket的包装。我们操作网络的时候可以直接使用socket等底层的库,但是...

    Python中asyncore异步模块的用法及实现httpclient的实例

    Python中的`asyncore`模块是Python标准库中用于构建异步网络应用的一个工具,它提供了对低级socket接口的封装,使得开发者能够方便地编写基于事件的多路复用网络程序。`asyncore`的核心是`dispatcher`类,它是对...

    Python的Asyncore异步Socket模块及实现端口转发的例子

    Asyncore模块提供了以异步的方式写入套接字服务客户端和服务器的基础结构。 只有两种方式使一个程序在单处理器上实现“同时做不止一件事”。多线程编程是最简单和最流行的方式,但是有另一种很不一样的技术,可以...

    spring框架高级编程使用.pdf

    与Python标准库中的asyncore模块相比,Twisted Matrix提供了更强大、更灵活的非阻塞I/O处理能力。这使得开发者能够处理大量的并发连接,而无需为每个连接创建一个新的线程或进程,从而降低了系统资源的消耗。 在...

    python的网络编程

    ### Python的网络编程 在探讨Python的网络编程之前,我们先了解一下Python作为一种强大的解释型语言,在网络编程领域内的应用及其实现方式。Python因其简洁、高效的语言特性,被广泛应用于各种场景,包括但不限于...

    pythonsocket

    此外,我们还会涉及select、asyncore、asynchat等高级网络编程模块的应用,这些模块能够帮助开发者更高效地处理网络事件,简化复杂的多线程或多连接程序的编写。 ### 一、socket模块 #### 1.1 Internet协议与HTTP...

    关于python基础教程项目5聊天服务器的实现.pdf

    Python基础教程项目5涉及到的是构建一个简单的聊天服务器,这个服务器基于`asyncore`和`asynchat`这两个Python标准库。这两个库主要用于异步网络编程,可以创建并发处理多个套接字连接的服务器。 首先,`asyncore`...

    python_DB__SOCKET开源

    - **asyncore和asynchat模块**:异步网络编程的支持,简化了长时间运行的网络服务程序的编写。 - 提供了异步TCP服务器和客户端的实现示例。 - 展示了如何使用这些模块构建简单的HTTP服务器。 - **urllib模块**:...

    关于python基础教程项目5聊天服务器的实现知识.pdf

    `asyncore`是一个用于构建异步网络应用的基础框架,它基于事件驱动的网络编程,可以处理多个套接字。`asynchat`则是`asyncore`的一个扩展,增加了对带缓冲区的异步I/O的支持,非常适合处理需要发送和接收复杂格式...

    关于python基础教程项目5聊天服务器的实现参考.pdf

    `asyncore`提供了一个事件驱动的网络套接字编程框架,而`asynchat`则是`asyncore`的扩展,专门处理带有固定格式头部和尾部的数据包。它们一起使得服务器可以同时处理多个客户端的请求,无需等待一个客户端完成交互后...

    python_socket详解

    除了基本的网络通信功能外,Python 标准库还提供了多个模块来简化网络编程的复杂性。 ##### 3.1 Select 模块 `select` 模块可以用来同时监控多个 socket 的 I/O 操作。 - **Example 7-6**: 使用 select 模块监控...

    python-3.7.1 64位软件

    9. **弃用警告**:Python 3.7开始发出弃用某些功能的警告,这些功能可能在未来的版本中被移除,比如`asyncore`模块的`poll`函数。 10. **更好的异常堆栈跟踪**:Python 3.7改进了异常的堆栈跟踪,显示引发异常的...

Global site tag (gtag.js) - Google Analytics