python 网络编程之socket-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

python 网络编程之socket

简介: 在python socket编程主要是面各tcp 和 udp编程。下面我们就用这两种不同的编程方式来实现一个从客服端发送信息到服务器端,   服务器端返回客服器现在时间和接收到的信息     我们先来实现tcp的编程 tcp 服务端代码(tsTserv.
    在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 完成,来看下效果图

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章