`
GhostFromheaven
  • 浏览: 394016 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Python多线程Socket程序例子

阅读更多
如果没有multitask包,请从http://python-multitask.googlecode.com/files/multitask-0.2.0.zip下载

http://blog.csdn.net/ghostfromheaven/article/details/7061387

server端
from __future__ import with_statement
from contextlib import closing
import socket
import multitask

def client_handler(sock):
    with closing(sock):
        while True:
            data = (yield multitask.recv(sock, 1024))
            if not data:
                break
            yield multitask.send(sock, data)

def echo_server(hostname, port):
    addrinfo = socket.getaddrinfo(hostname, port,
                                  socket.AF_INET,
                                  socket.SOCK_STREAM)
    
    (family, socketype, porot, canonname, sockaddr) = addrinfo[0]
    with closing(socket.socket(family,
                               socketype,
                               porot)) as sock:
        sock.setsockopt(socket.SOL_SOCKET,
                        socket.SO_REUSEADDR, 1)
        sock.bind(sockaddr)
        sock.listen(5)
        while True:
            multitask.add(client_handler((
                        yield multitask.accept(sock))[0]))
                        
if __name__ == '__main__':
    import sys
    hostname = '192.168.2.102'
    port = 1111
    
    if len(sys.argv) > 1:
        hostname = sys.argv[1]
    
    if len(sys.argv) > 2:
        port = int(sys.argv[2])
    
    multitask.add(echo_server(hostname, port))
    
    try:
        multitask.run()
    except KeyboardInterrupt:
        pass


client端测试

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('192.168.2.102', 1111))

sock.send('hello')

data = sock.recv(1024)
sock.close()
print 'Received', repr(data)










分享到:
评论

相关推荐

    Python的Socket连接例子(包含多线程例子)

    简单的Python的Socket连接的例子 包含Server和Client,还有一个多线程的测试

    python socket threading 多线程服务端

    现在这个例子添加了多线程 之前的例子有解释:https://blog.csdn.net/y363893017/article/details/105676878 大家可以自己去看,仅供学习,提供思路。 以下是我自己电脑上的截图 两个线程上传 上传完一个后 服务端...

    Python 通过 socket 实现服务端和客户端相互间网络通信的例子

    Python 通过 socket 实现服务端和客户端相互间网络通信的例子 通过socket实现网络通信 通过thread多线程实现同时收发

    python socket C-S 模型例子

    server 使用多线程同时与多个client连接,适用python socket编程的入门.

    python socket多线程通讯实例分析(聊天室)

    本文实例讲述了python socket多线程通讯方法。分享给大家供大家参考,具体如下: #!/usr/bin/evn python """ 这是一个Socket+多进程的例子(聊天服务端) """ import socket import threading # 处理中文数据用的 ...

    python socket 发送文件例子 不定长的信息皆可

    本例子是单线程的,大家可以再服务端加上多线程 性能未测试,但是很操蛋,再我电脑的两个centos7.4的虚拟机上运行服务端,再win上上传同样的文件,一个秒传,另一个最快要2:3秒,慢都要2:15秒, 由于服务端和...

    python Tcp协议发送和接收信息的例子

    需要建立2个文件,一个作为客户端,一个作为服务端 ...s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #2,建立连接发送连接请求 ip地址和端口号 s.connect(('127.0.0.1',8000)) s.send(你好.encode())

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

    多线程编程是最简单和最流行的方式,但是有另一种很不一样的技术,可以使得我们保持多线程的几乎所有优势,却不用真正使用多线程。 如果你的程序主要是受I/O限制的,这是唯一可行的方式。如果你的程序是受处理器限制...

    Python核心编程第二版

     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--...

    Python核心编程第二版(ok)

     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Pythonc对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--...

    Python详细教程.rar

    Python详细教程.rar 搭建环境 中文编码 基础语法 变量类型 运算符 条件语句 循环语句 数字 字符串 列表 元组 字典 日期时间 函数 模块 文件 异常 面向对象 ...网络编程socket 多线程 xml GUI编程 JSON 例子

    详解python并发获取snmp信息及性能测试

    网上有较多的关于两个库的例子。 本文重点在于如何并发的获取snmp的数据,即同时获取多台机器的snmp信息。 netsnmp 先说netsnmp。python的netsnmp,其实是来自于net-snmp包。 python通过一个c文件调用net-snmp的...

    疯狂JAVA讲义

    1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6 1.3.2 Java程序的运行机制和JVM 6 1.4 开发Java的准备 7 1.4.1 安装JDK 8 学生提问:不是说JVM是运行Java程序的虚拟机吗?那...

    bl-api-cloud,可扩展轻云服务端框架-易语言

    应用程序能够根据不同的容量要求、通信规模和资源状况等现实场景调整 HP-Socket 的各项性能参数(如:工作线程的数量、缓存池的大小、发送模式和接收模式等),优化资源配置,在满足应用需求的同时不必过度浪费资源...

Global site tag (gtag.js) - Google Analytics