先看socket多并发的服务端的代码,这里是用多线程实现的多并发socketserver

import socketserver

# socketserver有四个基本的类,后两个不常用,这4个类处理并发请求都是同步的,他们其实不是多线程的,他们只是把socke封装了一下,加了一些方法,这里还没有实现多并发和多线程
#这些方法不适用每个请求都耗费长时间才能完成 # socketserver.TCPServer
# socketserver.UDPServer
# socketserver.UnixStreamServer
# socketserver.UnixDatagramServer
# socketserver.ForkingMixIn
# socketserver.ThreadingMixIn # ========================================================================================================
# 我们真正要用的下面这4个方法
# 多进程的socketserver
# socketserver.ForkingTCPServer
# socketserver.ForkingUDPServer #多进程的socketserver
# socketserver.ThreadingTCPServer
# socketserver.ThreadingUDPServer # ======================================================================================================== class MyTcpServerClass(socketserver.BaseRequestHandler):
# 先定义一个自己的socket的类,所有和客户端交互的动作全部要在这里写,默认这里是空白的,且必须写handle这个防范
def handle(self):
print("等待新的连接:")
print("新的客户端:",self.client_address)
while True:
try:
data = self.request.recv(1024)
print("客户端:",self.client_address,str(data,encoding="utf-8"))
self.request.send(data)
except Exception:
print("客户端[%s]连接已经断开,服务端也将断开" %(self.client_address[1]))
self.request.close()
break if __name__ == '__main__':
ip_bind = ("127.0.0.1",9000)
server = socketserver.ThreadingTCPServer(ip_bind,MyTcpServerClass)
# 每次来一个连接,就构建一个实例
server.serve_forever()
# 让这个server一直运行

然后看下客户端的代码

import socket
ip_bind = ("127.0.0.1",9000) c = socket.socket()
c.connect(ip_bind)
while True:
c_input = input("客户端:")
c.send(bytes(c_input,encoding="utf-8"))
s_send = c.recv(1024)
print("服务端:",str(s_send,encoding="utf-8"))

  

python之多并发socket的更多相关文章

  1. python之多并发socket(zz)

    本文转载自:http://www.cnblogs.com/bainianminguo/p/7337210.html 先看socket多并发的服务端的代码,这里是用多线程实现的多并发socketserv ...

  2. Python中的并发编程

    简介 我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态.打开文件列表.追踪指令执行情况的程序指针以及一个保存局部变量的调用栈.通常情况下,一个进程依照一个单序列控制流顺序执 ...

  3. Python之路,Day8 - Socket编程进阶

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  4. Python开源异步并发框架

    Python开源异步并发框架的未来 2014年3月30日,由全球最大的中文IT社区CSDN主办的“开源技术大会·” (Open Source Technology Conference ,简称OSTC ...

  5. python学习笔记之socket(第七天)

         参考文档:              1.金角大王博客:http://www.cnblogs.com/alex3714/articles/5227251.html               ...

  6. Python几种并发实现方案的性能比较

    http://blog.csdn.net/permike/article/details/54846831 Python几种并发实现方案的性能比较 2017-02-03 14:33 1541人阅读 评 ...

  7. 用 Python 理解 Web 并发模型

    用 Python 理解 Web 并发模型 http://www.jianshu.com/users/1b1fde012122/latest_articles   来源:MountainKing 链接: ...

  8. python学习之并发编程

    目录 一.并发编程之多进程 1.multiprocessing模块介绍 2.Process类的介绍 3.Process类的使用 3.1 创建开启子进程的两种方式 3.2 获取进程pid 3.3验证进程 ...

  9. 百万年薪python之路 -- 并发编程之 多线程 二

    1. 死锁现象与递归锁 进程也有死锁与递归锁,进程的死锁和递归锁与线程的死锁递归锁同理. 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因为争夺资源而造成的一种互相等待的现象,在无外力的作用 ...

随机推荐

  1. 1053 Path of Equal Weight (30 分)

    Given a non-empty tree with root R, and with weight W​i​​ assigned to each tree node T​i​​. The weig ...

  2. 学习URL地址(待整理)

    编程开发教程:http://www.runoob.com/ ElasticSearch教程:https://es.xiaoleilu.com/index.html 设计模式:http://www.cn ...

  3. 经典收藏链接(C#总结)

    去年底转到Java,在此总结一下.很多不错的C#博客在此收藏标记\(^o^)/~ 1.基础知识 Linq专题:http://www.cnblogs.com/RuiLei/archive/2009/09 ...

  4. 根据inode编号来删除文件或目录

    在Linux系统上,有时候会出现文件名为特殊字符的文件或目录,当我们使用rm来删除这样的文件或目录时,就会出错导致删不掉.但是我们可以依据inode号来删除这样的文件,方法如下: (1)执行ls -i ...

  5. OpenACC 书上的范例代码(Jacobi 迭代),part 1

    ▶ 使用Jacobi 迭代求泊松方程的数值解 ● 原始串行版本,运行时间 2272 ms #include <stdio.h> #include <stdlib.h> #inc ...

  6. openx ————带整理

    the initialisation file  初始化文件 Security check        安全检查 /work/puti-api-1.0/www/adapi/lib/OA/Admin/ ...

  7. 使用seaborn制图(柱状图)

    import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 设置风格, ...

  8. Spring mvc 返回json包含双引号问题 解决

    解决方式1: @RequestMapping(value="/shopsList.json", produces = "text/html;charset=UTF-8&q ...

  9. 前端-CSS-5-继承性&层叠性&权重比较

    1.继承性 <style type="text/css"> .father{ font-size: 30px; background-color: green; } . ...

  10. ABAP-面向对象的开发

    转载:https://blog.csdn.net/zhongguomao/article/details/70266246 在程序中, 对象的识别和寻址是通过对象引用来实现的,对象引用变量可以访问对象 ...