Python CODE——Nonblocking I/O client AND Delaying Server

 1 #!Nonblocking I/O - Chapter 5 -pollclient.py
 2 import socket,sys,select
 3 port=51423
 4 host=‘localhost‘
 5
 6 spinsize=10
 7 spinpos=0
 8 spindir=1
 9
10 def spin():
11     global spinsize,spinpos,spindir
12     spinstr=‘.‘*spinpos+‘|‘+‘.‘*(spinsize-spinpos-1)
13     sys.stdout.write(‘\r‘+spinstr+‘  ‘)
14     sys.stdout.flush()
15
16     spinpos+=spindir
17     if spinpos<0:
18         spindir=1
19         spinpos=1
20     elif spinpos>=spinsize:
21         spinpos-=2
22         spindir=-1
23
24 sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
25 sock.connect((host,port))
26
27 p=select.poll()
28 p.register(sock.fileno(),select.POLLIN|select.POLLERR|select.POLLHUP)
29
30 while True:
31     results=p.poll(2002)
32     if len(results):
33         if results[0][1]==select.POLLIN:
34             data=sock.recv(4096).decode()
35             if not len(data):
36                 print("\rRemote end closed connection; exiting.")
37                 break
38         sys.stdout.write("\rReceived :"+data)
39         sys.stdout.flush()
40         spin()
41     else:
42         print("\rProblem occurred; exiting")
43         sys.exit(0)
 1 #!Delaying Server - Chapter 5 -delayserver.py
 2 import socket,traceback,time
 3
 4 host=""
 5 port=51423
 6
 7 sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
 8 sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
 9 sock.bind((host,port))
10 sock.listen(1)
11
12 while True:
13     try:
14         clientsock,clientaddr= sock.accept()
15     except KeyboardInterrupt:
16         raise
17     except:
18         traceback.print_exc()
19         continue
20
21     try:
22         print("Got connection from ",clientsock.getpeername)
23         while True:
24             try:
25                 print(time.asctime().encode())
26                 clientsock.sendall(time.asctime().encode()+b"\n")
27             except:
28                 break
29             time.sleep(2)
30     except (KeyboardInterrupt,SystemExit):
31         raise
32     except:
33         traceback.print_exc()
34
35     try:
36         clientsock.close()
37     except KeyboardInterrupt:
38         raise
39     except:
40         traceback.print_exc()
时间: 2024-11-08 21:33:46

Python CODE——Nonblocking I/O client AND Delaying Server的相关文章

Exploring Python Code Objects

Exploring Python Code Objects https://late.am/post/2012/03/26/exploring-python-code-objects.html Inspired by David Beazley's Keynote at PyCon, I've been digging around in code objects in Python lately. I don't have a particular axe to grind, nor some

转载:Character data is represented incorrectly when the code page of the client computer differs from the code page of the database in SQL Server 2005

https://support.microsoft.com/en-us/kb/904803 Character data is represented incorrectly when the code page of the client computer differs from the code page of the database in SQL Server 2005 Email Print SYMPTOMS Consider the following scenario: In

Python code 提取UML

Python是一门支持面向对象编程的语言,在大型软件项目中,我们往往会使用面向对象的特性去组织我们的代码,那有没有这样一种工具,可以帮助我们从已有代码中提取出UML图呢?答案是有的.以下,我们逐个介绍这些工具. pyreverse 是一套python code 逆向工程(reverse engineering)的工具.它使用类层次结构的python 项目表示已提取任何可用的信息,可以很方便的应用于UML图的生成,或者单元测试,如pyargo和py2tests.pyreverse 已被整合进pyl

解决Apache虚拟主机报错问题apache AH01630: client denied by server configuration错误解决方法

今天同事咨询通过Apache搭建创建虚拟主机,搭建好发现一直报错,提示 "apache AH01630: client denied by server configuration",在网上搜索了一下, 发现这个错误的原因是,apache2.4 与 apache2.2 的虚拟主机配置写法不同导致. apache2.2的写法: [plain] view plain copy 在CODE上查看代码片派生到我的代码片 <VirtualHost *:80> ServerName f

Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别

http://www.cnblogs.com/xrq730/p/4839245.html 前言 之前的文章尤其是讲解GC的时候提到了很多的概念,比如内存溢出和内存泄露.并行与并发.Client模式和Server模式.Minor GC和Full GC,本文详细讲解下这些概念的区别. 内存溢出和内存泄露的区别 1.内存溢出 内存溢出指的是程序在申请内存的时候,没有足够大的空间可以分配了. 2.内存泄露 内存泄露指的是程序在申请内存之后,没有办法释放掉已经申请到内存,它始终占用着内存,即被分配的对象可

android binder 机制二(client和普通server)

在讲它们之间的通信之前,我们先以MediaServer为例看看普通Server进程都在干些什么. int main() { -- // 获得ProcessState实例 sp<ProcessState> proc(ProcessState::self()); // 得到ServiceManager的Binder客户端实例 sp<IServiceManager> sm = defaultServiceManager(); -- // 通过ServiceManager的Binder客户

关于JVM的Client模式和Server模式

曾几何时,我也敲打过无数次这样的命令: 然而之前的我都只关心过版本号,也就是第一行的内容.今天,我们就来看看第3行输出的内容:JVM的工作模式. 通过百度搜索,只能搜到几篇被重复转载的文章.比如这一篇,这里面基本描述了JVM两种模式的区别: -Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升. 但我认为仅仅知道这些区别还不够.然而,我在百度的搜索结果中很少看见有描述的比较深入的关于JVM两种模式区别的文章.不过我倒是找到了这一篇文章. 这篇文章中提到了如下内容: 当虚拟

Fms3中client端与server端交互方式汇总

系列文章导航 Flex,Fms3相关文章索引 Flex和Fms3打造在线聊天室(利用NetConnection对象和SharedObject对象) Fms3和Flex打造在线视频录制和回放 Fms3和Flex打造在线多人视频会议和视频聊天(附原代码) Fms3中client端与server端交互方式汇总 免费美女视频聊天,多人视频会议功能加强版本(Fms3和Flex开发(附源码)) 免费网络远程视频会议系统,免费美女多人视频聊天(附源码下载)(Flex和Fms3开发) 开源Flex Air版免费

解决apache AH01630: client denied by server configuration错误

昨天给公司配置了apache-2.4.9的版本,今天他们要求把虚拟主机配置起好放网站程序,在修改apache-2.4.9的配置文件中,我发现了2.4.x跟以前的2.2.x里面的很多配置都不一样了,比如配置这个虚拟主机都有一些不同,按照以前的配置方法,会报下面的错误:AH01630: client denied by server configuration: /usr/local/apache/htdocs/recx/ 先给大家看看我按照apache-2.2.x配置虚拟机的内容:NameVirt