咦,这些内容,和我以前看内核时的东东,对应起来了。。

SELECT,POLL,EPOLL,非阻塞,异步之类的。。。

但我没有调出来。回家有空了可以看看,不用再敲打代码啦。。。

#!/usr/bin/env python
import socket, sys, select

port = 54321
host = '127.0.0.1'

spinsize = 10
spinpos = 0
spindir = 1

def spin():
    global spinsize, spinpos, spindir
    spinstr = '.' * spinpos + \
    '|' + '.' * (spinsize - spinpos -1 )
    sys.stdout.write('\r' + spinstr + ' ')
    sys.stdout.flush()

    spinpos += spindir
    if spinpos < 0:
    spindir = 1
    spinpos = 1
    elif spinpos >= spinsize:
    spinpos = 2
    spindir = -1

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))

p = select.poll()
p.register(s.fileno(), select.POLLIN | select.POLLERR | select.POLLHUP)

while 1:
    results = p.poll(50)
    if len(results):
    if results[0][1] == select.POLLIN:
        data = s.recv(4096)
        if not len(data):
        print "\rRemote end closed connection; exiting."
        break
        sys.stdout.write("\rReceived: " + data)
        sys.stdout.flush()
    else:
        print "\rProblem occurred; exiting."
        sys.exit(0)
spin()

最新文章

  1. 【BZOJ-3514】Codechef MARCH14 GERALD07加强版 LinkCutTree + 主席树
  2. DOS tasklist 命令(转)
  3. Linq To Entities 及其相关(进阶)
  4. cctype函数 (字符类型判断)
  5. 5. Fragment详解
  6. Unicode转为UTF8
  7. django 学习-11 Django模型数据模板呈现
  8. poj2391,poj2455
  9. 【Java基础】基本类型的包装类作为参数传递是值传递还是引用传递
  10. 整合 新浪 腾讯 人人 qq空间 分享地址
  11. 【写一个自己的js库】 4.完善跨浏览器事件操作
  12. Laravel生命周期
  13. Canvas实现3D效果-可旋转的立方体
  14. adoquery.refresh和adoquery.query的区别
  15. 美国主机BlueHost vs HostEase
  16. Python Socket 编程详细介绍(转)
  17. 在已配置成功的opencv3.2.0下配置opencv_contrib模块
  18. selenium2.0关于python的常用函数
  19. hadoop生态搭建(3节点)-13.mongodb配置
  20. MQTT的学习之Mosquitto安装&amp;使用(1)

热门文章

  1. linux内核分析系列--百度
  2. Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致
  3. Silverlight实用窍门系列:47.Silverlight中元素到元素的绑定,以及ObservableCollection和List的使用区别
  4. jquery自调用匿名函数解析
  5. js--小结⑤
  6. H TML5 之 (6)下雨效果
  7. IIS 上发布ASP.NET5
  8. 什么时候用using (SPSite site = new SPSite(SPContext.Current.Web.Url))
  9. Java SpringMvc+hibernate架构中,调用Oracle中的sp,传递数组参数
  10. MyBatis的学习总结四:实现关联表查询【参考】