<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            網頁設計

            Python的Socket 編程

            時間:2025-02-02 10:07:02 網頁設計 我要投稿
            • 相關推薦

            Python的Socket 編程

              文章最初發布的時候標題是“Python的WebSocket編程”,坦白來說有點文不對題。我們在這里打算討論的僅僅是常規的socket編程。盡管 Web Socket 和常規sockets有點很相似,但又不是同一個東西。那我還是希望這篇文章對你們有點幫助。

              Socket是網絡應用的基礎。而Python使得網絡socket編程入門變得超級簡單。在這篇簡介里面我們將創建一個簡單服務器,用于接受和相應客戶端程序的請求。

              由于本人最近對 Linux Containers 有點癡迷,因此我們也將在服務器中實現2個容器。同時在容器中我們在幾秒鐘內就能創建其他一些主機,這就能非常簡單的模擬出一個網絡。

              創建容器

              我使用的是Ubuntu14.04. 然后用root用戶運行下面的命令就可以創建好2個容器了。

              代碼如下:

              lxc-create -t download -n pyServer

              # Choose ubuntu, trusty, amd64 when prompted

              # Then clone the first container

              lxc-clone -o pyServer -n pyClient

              啟動服務器

              現在我們創建好了容器,先進入到服務器容器中并啟動我們的服務器程序。用root權限運行下面這條命令就可以啟動容器了:lxc-start -n pyServer -d, 這將啟動容器作為我們的守護進程。讓我們先重新連接進入這個容器。這里我喜歡使用screen,這樣我可以很方便的進出到容器中。先創建screen會話: screen -dRR pyServer,需要重新連接到容器中的話,可以用命令:lxc-attach -n pyServer

              當我們進入到容器中后,我們需要安裝python并啟動服務器。

              代碼如下:

              apt-get install python

              vim pyServer.py

              打開vim(或你個人偏好的文本編輯器),敲入以下python代碼。

              代碼如下:

              from socket import *

              serverPort = 12000

              serverSocket = socket(AF_INET, SOCK_DGRAM)

              serverSocket.bind(('', serverPort))

              print "The server is ready to rock and roll!"

              while 1:

              name, clientAddress = serverSocket.recvfrom(2048)

              response = "Hello " + str(name) + "! You are really good at socket programming"

              serverSocket.sendto(response, clientAddress)

              這段代碼很直觀。我們創建了一個serverSocket監聽12000端口。當接收到請求的時候(包含用戶名)就會回復一條信息。啟動服務器的命令是 python pyServer.py 如果一切正常的話,你應該可以看到這樣一條信息 This server is ready to rock and roll! 用Ctrl+a 和Ctrl+d退出容器(還有screen會話)

              啟動客戶端

              現在服務器端已經準備就緒,改讓客戶端跑起來了。在開始前先查一下服務器容器的IP地址,我們馬上就會用到。你可以用這個命令得到IP:lxc-ls --fancy 。用一個screen會話進入到客戶端的容器,和前面步驟一樣安裝好python。

              代碼如下:

              lxc-start -n pyClient -d

              screen -dRR pyClient

              lxc-attach -n pyClient

              apt-get install python

              vim pyClient.py

              在vim里面敲入以下代碼創建一個pyClient.py文件。

              代碼如下:

              from socket import *

              # Replace the IP address in serverName with the IP of your container that you grabbed previously.

              serverName = '10.0.3.211'

              serverPort = 12000

              clientSocket = socket(AF_INET, SOCK_DGRAM)

              name = raw_input('Please enter your name:')

              clientSocket.sendto(name, (serverName, serverPort))

              response, serverAddress = clientSocket.recvfrom(2048)

              print response

              clientSocket.close()

              這段代碼也很直觀。要求用戶輸入用戶名,然后發送到服務器,最后打印出服務器響應信息。

              現在你可以自己來了!保存文件,然后執行python程序 python pyClient.py .在你輸入你的名字并按下回車后,就應該可以收到一條來自服務器的響應信息。

              這是一個非常簡單的例子,但我們很容易就發現,可以在這些基礎的代碼上面做一些拓展就可以實現很多更有趣也更復雜的應用。我們還可以利用LXC強大的功能但簡便的操作模擬出一個更大的網絡從而實現一個分布式應用。

              以上所述就是本文的全部內容了,希望對大家學習python能夠有所幫助。

            【Python的Socket 編程】相關文章:

            PHP Socket編程過程07-19

            簡明的 Python 編程規范04-23

            C語言socket編程的方法04-29

            C語言socket編程使用方法06-20

            C語言socket編程開發應用示例02-25

            C語言socket編程使用方法簡介07-29

            講解Java的Socket網絡編程的多播與廣播實現02-11

            C語言socket多線程編程限制客戶端連接數07-27

            PHP socket的配置及實例03-21

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看