歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python網絡編程小例子【附源代碼】

版本:Python 2.7.3

開發工具:IDLE (Python GUI)和Eclipse Pydev

服務器端代碼:

# -*- coding: cp936 -*-
import socket 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#初始化socket
sock.bind(("127.0.0.1", 8001))#綁定本機地址,8001端口
sock.listen(5)#等待客戶連接
while True:
    print "waiting client connection..."
    connection,address = sock.accept()#接收客戶連接請求
    print "a client have connected..."
    while True:
        try: 
            connection.settimeout(5)  #設置超時時間
            buf = connection.recv(1024) #接收數據
            if buf == "1": 
              connection.send("you have send me 1!welcome to server!")
            elif buf=="2":
                connection.send("you have send me 2!I have recv!")
            elif buf=="3":
                connection.send("close the connection!")
                break
            else: 
              connection.send("unknow command!") 
        except socket.timeout: 
            print "time out" 
    connection.close()
    print "a client exit..."

客戶端代碼:

import socket 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
sock.connect(("127.0.0.1", 8001)) 
import time 
time.sleep(2)
while True:
    data=raw_input("input command:");
    sock.send(data)
    print sock.recv(1024)
    if data=="3":
      break
sock.close()

實驗過程:

在Eclipse編程環境下,上述代碼運行沒有任何的問題。但是在IDLE中,首次運行‘Run Model’時也能正常運行。運行結果如下:

但是,當服務器程序再次運行時,會出現如下錯誤:

此時,是因為sock綁定失敗,原因是因為第一次運行的窗口進程沒有關閉!在任務管理器中,找到進程pythonw.exe關閉,然後再次運行正常!

注:IDLE代碼整理的快捷鍵:和matlab很像,選中一段代碼,Ctrl+[ 向左邊縮進 Ctrl+] 向右邊縮進。Python語法是強制縮進的

源代碼下載地址:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/12月/26日/Python網絡編程小例子【附源代碼】

未經允許不得用於商業目的

Copyright © Linux教程網 All Rights Reserved