亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python 的 Socket 編程

系統 1762 0

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能夠有所幫助。

請您花一點時間將文章分享給您的朋友或者留下評論。我們將會由衷感謝您的支持!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产成人咱精品视频免费网站 | 久久天天躁狠狠躁夜夜爽蜜月 | 奇米777视频二区中文字幕 | 91精品国产免费久久久久久青草 | 卡通动漫精选国产欧美 | 69欧美另类xxxxx高清 | 欧美网站色 | 神马视频我不卡 | 一级黄网| 露脸真实国产精品自在 | 正在播放一区二区 | 亚洲天堂福利视频 | 天天摸天天碰色综合网 | 视频二区 中文字幕 欧美 | 国产精品1区2区3区在线播放 | 国产三级不卡 | 美女个护士一级毛片亚洲 | 久久亚洲精品中文字幕二区 | 91视频网页版 | 伊人色播| 看免费的毛片 | 高清午夜毛片 | 日韩在线一 | 亚洲国产成人久久精品动漫 | 午夜官网 | 男人的天堂在线免费视频 | 日本激情啪啪 | 一级全黄色毛片 | 亚洲资源站资源网在线 | 亚洲一欧洲中文字幕在线 | 日日夜夜操美女 | 高清国产一区二区 | 看真人一级毛多毛片 | 妇女毛片 | 狠狠干狠狠色 | 免费观看四虎精品成人 | 久久久精品国产免费观看同学 | 天天拍拍夜夜出水 | 国产一区二区三区在线观看免费 | 久久五月天综合 | 亚洲欧美国产日产综合不卡 |