zoukankan      html  css  js  c++  java
  • 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('
    '+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("
    Remote end closed connection; exiting.")
    37                 break
    38         sys.stdout.write("
    Received :"+data)
    39         sys.stdout.flush()
    40         spin()
    41     else:
    42         print("
    Problem 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"
    ")
    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()
  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/Simon-xm/p/4076668.html
Copyright © 2011-2022 走看看