Python 的 Socket 编程
Socket是网络应用的基础。而Python使得网络socket编程入门变得超级简单。在这篇简介里面我们将创建一个简单服务器,用于接受和相应客户端程序的请求。 创建容器 我使用的是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 复制代码 代码如下: 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能够有所帮助。 请您花一点时间将文章分享给您的朋友或者留下评论。我们将会由衷感谢您的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |