分享

python网络编程小例子

 看风景D人 2014-01-23

版本:python 2.7.3
开发工具:IDLE (Python GUI)和Eclipse Pydev
服务器端代码

  1. # -*- coding: cp936 -*-   
  2. import socket    
  3. sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#初始化socket    
  4. sock.bind(("127.0.0.1"8001))#绑定本机地址,8001端口   
  5. sock.listen(5)#等待客户连接    
  6. while True:  
  7.     print "waiting client connection..."  
  8.     connection,address = sock.accept()#接收客户连接请求   
  9.     print "a client have connected..."  
  10.     while True:  
  11.         try:    
  12.             connection.settimeout(5)  #设置超时时间   
  13.             buf = connection.recv(1024#接收数据   
  14.             if buf == "1":    
  15.                connection.send("you have send me 1!welcome to server!")  
  16.             elif buf=="2":  
  17.                 connection.send("you have send me 2!I have recv!")  
  18.             elif buf=="3":  
  19.                 connection.send("close the connection!")  
  20.                 break  
  21.             else:    
  22.                connection.send("unknow command!")    
  23.         except socket.timeout:    
  24.             print "time out"    
  25.     connection.close()  
  26.     print "a client exit..."  


客户端代码

  1. import socket    
  2. sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    
  3. sock.connect(("127.0.0.1"8001))    
  4. import time    
  5. time.sleep(2)  
  6. while True:  
  7.     data=raw_input("input command:");  
  8.     sock.send(data)  
  9.     print sock.recv(1024)  
  10.     if data=="3":  
  11.        break  
  12. sock.close()  


 

实验过程:
在Eclipse编程环境下,上述代码运行没有任何的问题。但是在IDLE中,首次运行‘Run Model’时也能正常运行。运行结果如下:
[img1]

[img2]


但是,当服务器程序再次运行时,会出现如下错误:
[img3]

此时,是因为sock绑定失败,原因是因为第一次运行的窗口进程没有关闭!在任务管理器中,找到进程pythonw.exe关闭,然后再次运行正常!

注:IDLE代码整理的快捷键:和matlab很像,选中一段代码,Ctrl+[ 向左边缩进 Ctrl+] 向右边缩进。Python语法是强制缩进的
源代码下载地址:
http://download.csdn.net/detail/nuptboyzhb/4929631

未经允许不得用于商业目的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多