云萌主云应用官方论坛

标题: Python的socket编程 [打印本页]

作者: 骑单车的小女孩    时间: 2016-12-30 00:43
标题: Python的socket编程
本帖最后由 骑单车的小女孩 于 2016-12-30 00:44 编辑

目前处在学习python的阶段,昨天看到了python的socket模块,分别实现TCP、UDP时间戳回显。
来源:http://www.open-open.com/code/view/1428648155843
  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()
复制代码






欢迎光临 云萌主云应用官方论坛 (https://www.yunmengzhu.com/) Powered by Discuz! X3.4