python 网络编程之socket

  1. 云栖社区>
  2. 博客>
  3. 正文

python 网络编程之socket

thinkyoung 2014-05-08 20:37:00 浏览533
展开阅读全文
    在python socket编程主要是面各tcp 和 udp编程。下面我们就用这两种不同的编程方式来实现一个从客服端发送信息到服务器端,   服务器端返回客服器现在时间和接收到的信息     我们先来实现tcp的编程 tcp 服务端代码(tsTserv.py):  
[python] view plaincopy
 
  1. '''''
  2. Created on 2010-12-13
  3. @author: Administrator
  4. '''
  5. from socket import *
  6. from time import ctime
  7. HOST=''
  8. PORT=21582
  9. BUFSIZ=1024
  10. ADDR=(HOST,PORT)
  11. tcpSerSock=socket(AF_INET,SOCK_STREAM)
  12. tcpSerSock.bind(ADDR)
  13. tcpSerSock.listen(5)
  14. while True:
  15.     print 'waiting for connection...'
  16.     tcpCliSock,addr=tcpSerSock.accept()
  17.     print '...connected from:',addr
  18.     while True:
  19.         data=tcpCliSock.recv(BUFSIZ)
  20.         if not data:
  21.             break
  22.         tcpCliSock.send('[%s] %s' %(ctime(),data))
  23.     tcpSerSock.close()
  24.     tcpCliSock.close()
    tcp客服端代码(tsTclnt.py):
[python] view plaincopy
 
  1. '''''
  2. Created on 2010-12-13
  3. @author: Administrator
  4. '''
  5. from socket import *
  6. HOST='localhost'
  7. PORT=21582
  8. BUFSIZ=1024
  9. ADDR=(HOST,PORT)
  10. tcpCliSock=socket(AF_INET,SOCK_STREAM)
  11. tcpCliSock.connect(ADDR)
  12. while True:
  13.     data=raw_input('>')
  14.     if not data:
  15.         break
  16.     tcpCliSock.send(data)
  17.     data=tcpCliSock.recv(BUFSIZ)
  18.     if not data:
  19.         break
  20.     print data
  21. tcpCliSock.close()
    ok 我们现在来看下效果图:       实现upd 编程   udp服务端代码(tsUserv.py):  
[python] view plaincopy
 
  1. '''''
  2. Created on 2010-12-13
  3. @author: Administrator
  4. '''
  5. from socket import *
  6. from time import ctime
  7. HOST=''
  8. PORT=21590
  9. BUFSIZ=1024
  10. ADDR=(HOST,PORT)
  11. udpSerSock=socket(AF_INET,SOCK_DGRAM)
  12. udpSerSock.bind(ADDR)
  13. while True:
  14.     print 'waiting for message...'
  15.     data,addr=udpSerSock.recvfrom(BUFSIZ)
  16.     udpSerSock.sendto('[%s] %s' %(ctime(),data),addr)
  17.     print '...received from and returned to:',addr
  18.     udpSerSock.close()
    udp 客服端代码(tsUclnt.py):    
[python] view plaincopy
 
  1. '''''
  2. Created on 2010-12-13
  3. @author: Administrator
  4. '''
  5. from socket import *
  6. from time import ctime
  7. HOST='localhost'
  8. PORT=21590
  9. BUFSIZ=1024
  10. ADDR=(HOST,PORT)
  11. udpCliSock=socket(AF_INET,SOCK_DGRAM)
  12. while True:
  13.     data=raw_input('>')
  14.     if not data:
  15.         break
  16.     print data
  17.     udpCliSock.sendto(data,ADDR)
  18.     data,ADDR=udpCliSock.recvfrom(BUFSIZ)
  19.     if not data:
  20.         break
  21.     print data
  22. udpCliSock.close()
    ok 完成,来看下效果图

网友评论

登录后评论
0/500
评论
thinkyoung
+ 关注