国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 的 Socket 編程

2020-02-23 00:23:48
字體:
供稿:網(wǎng)友

Socket是網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)。而Python使得網(wǎng)絡(luò)socket編程入門變得超級(jí)簡(jiǎn)單。在這篇簡(jiǎn)介里面我們將創(chuàng)建一個(gè)簡(jiǎn)單服務(wù)器,用于接受和相應(yīng)客戶端程序的請(qǐng)求。
由于本人最近對(duì) Linux Containers 有點(diǎn)癡迷,因此我們也將在服務(wù)器中實(shí)現(xiàn)2個(gè)容器。同時(shí)在容器中我們?cè)趲酌腌妰?nèi)就能創(chuàng)建其他一些主機(jī),這就能非常簡(jiǎn)單的模擬出一個(gè)網(wǎng)絡(luò)。

創(chuàng)建容器

我使用的是Ubuntu14.04. 然后用root用戶運(yùn)行下面的命令就可以創(chuàng)建好2個(gè)容器了。

代碼如下:
lxc-create -t download -n pyServer
# Choose ubuntu, trusty, amd64 when prompted
# Then clone the first container
lxc-clone -o pyServer -n pyClient

啟動(dòng)服務(wù)器

現(xiàn)在我們創(chuàng)建好了容器,先進(jìn)入到服務(wù)器容器中并啟動(dòng)我們的服務(wù)器程序。用root權(quán)限運(yùn)行下面這條命令就可以啟動(dòng)容器了:lxc-start -n pyServer -d, 這將啟動(dòng)容器作為我們的守護(hù)進(jìn)程。讓我們先重新連接進(jìn)入這個(gè)容器。這里我喜歡使用screen,這樣我可以很方便的進(jìn)出到容器中。先創(chuàng)建screen會(huì)話:  screen -dRR pyServer,需要重新連接到容器中的話,可以用命令:lxc-attach -n pyServer
當(dāng)我們進(jìn)入到容器中后,我們需要安裝python并啟動(dòng)服務(wù)器。

代碼如下:
apt-get install python
vim pyServer.py

打開vim(或你個(gè)人偏好的文本編輯器),敲入以下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)

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

啟動(dòng)客戶端

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

代碼如下:
lxc-start -n pyClient -d
screen -dRR pyClient
lxc-attach -n pyClient
apt-get install python
vim pyClient.py

在vim里面敲入以下代碼創(chuàng)建一個(gè)pyClient.py文件。

代碼如下:
from socket import *
# Replace the IP address in serverName with the IP of your container that you      grabbed previously.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江北区| 会同县| 新巴尔虎右旗| 磐石市| 五大连池市| 融水| 伊春市| 邯郸县| 永吉县| 杨浦区| 南雄市| 长春市| 南陵县| 怀远县| 邮箱| 昌黎县| 黄大仙区| 保康县| 集贤县| 宣武区| 富顺县| 聊城市| 万安县| 平山县| 冷水江市| 万州区| 海丰县| 加查县| 玛沁县| 左云县| 葵青区| 芒康县| 克拉玛依市| 武冈市| 武川县| 尼玛县| 乌苏市| 定西市| 舞钢市| 轮台县| 南汇区|