返回顶部

Python的socket编程

[复制链接]
骑单车的小女孩Lv.2 显示全部楼层 发表于 2016-12-30 00:43:04 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 骑单车的小女孩 于 2016-12-30 00:44 编辑

目前处在学习python的阶段,昨天看到了python的socket模块,分别实现TCP、UDP时间戳回显。
  1. # tcpServer.py
  2. #!/usr/bin/python
  3. # -*- coding: utf-8 -*-

  4. from socket import *
  5. from time import ctime

  6. HOST = ''
  7. PORT = 21156
  8. BUFSIZE = 1024
  9. ADDR = (HOST,PORT)

  10. tcpServerSock = socket(AF_INET,SOCK_STREAM)
  11. tcpServerSock.bind(ADDR)
  12. tcpServerSock.listen(5)

  13. while True:
  14.         print 'waiting for connection...'
  15.         tcpClientSock ,addr = tcpServerSock.accept()
  16.         print '...connected from:',addr

  17.         while True:
  18.                 data=tcpClientSock.recv(BUFSIZE)
  19.                 if not data:
  20.                         break
  21.                 tcpClientSock.send('[%s] %s' % (ctime(),data))

  22.                 tcpClientSock.close()
  23. tcpServerSock.close
复制代码
  1. # tcpClient.py
  2. #!/usr/bin/python
  3. # -*- coding: utf-8 -*-

  4. from socket import *

  5. HOST = 'localhost'
  6. PORT = 21156
  7. BUFSIZE = 1024
  8. ADDR = (HOST,PORT)

  9. tcpClientSock = socket(AF_INET,SOCK_STREAM)
  10. tcpClientSock.connect(ADDR)

  11. while True:
  12.         data = raw_input('>')
  13.         if not data:
  14.                 break
  15.         tcpClientSock.send(data)
  16.         data = tcpClientSock.recv(BUFSIZE)
  17.         if not data:
  18.                 break
  19.         print data

  20. tcpClientSock.close()
复制代码
  1. #udpServer.py
  2. #!/usr/bin/python
  3. # -*- coding: utf-8 -*-

  4. from socket import *
  5. from time import ctime

  6. HOST = ''
  7. PORT = 21156
  8. BUFSIZE = 1024
  9. ADDR = (HOST,PORT)

  10. udpServerSock = socket(AF_INET,SOCK_DGRAM)
  11. udpServerSock.bind(ADDR)

  12. while True:
  13.         print 'waiting for message...'
  14.         data ,addr = udpServerSock.recvfrom(BUFSIZE)
  15.         udpServerSock.sendto('[%s] %s' % (ctime(),data), addr)
  16.         print '...received from and returned to:',addr

  17.                 tcpClientSock.close()
  18. tcpServerSock.close
  19. #udpClient.py
  20. #!/usr/bin/python
  21. # -*- coding: utf-8 -*-

  22. from socket import *
  23. # from time import ctime

  24. HOST = 'localhost'
  25. PORT = 21156
  26. BUFSIZE = 1024
  27. ADDR = (HOST,PORT)

  28. udpClientSock = socket(AF_INET,SOCK_DGRAM)

  29. while True:
  30.         data = raw_input('>')
  31.         if not data:
  32.                 break
  33.         udpClientSock.sendto(data,ADDR)
  34.         data,ADDR = udpClientSock.recvfrom(BUFSIZE)
  35.         if not data:
  36.                 break
  37.         print data

  38. udpClientSock.close()
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

云萌主 云萌主-BIGSAAS旗下,由北京合智互联信息技术有限公司在2018年创立,为广大云应用技术爱好者的平台。在云萌主论坛可以查看云应用技术文章、云产品产品最新资讯、技术问答、技术视频。在畅游云上技术的同时,学到最新的云应用产品和技术。
  • 微信公众号

  • Powered by Discuz! X3.5 | Licensed | Copyright © 2001-2022, Aliyun Cloud. | 星点互联设计
  • 京ICP备18052714号 | 营业执照 | |合智互联| QQ