Python 的 Socket 编程,学好python的必经之路!

在这里为大家推荐一个我的python群:58937142 里面新手资料,框架,爬虫。web都有,都是可以免费获取的,还有大牛解答各种难题,不失为是一个学习的好地方,小编在这里邀请大家加入我的大家庭。欢迎你的到来。Socket是网络应用的基础。而Python使得网络socket编程入门变得超级简单。在这篇简介里面我们将创建一个简单服务器,用于接受和相应客户端程序的请求。

由于本人最近对 Linux Containers 有点痴迷,因此我们也将在服务器中实现2个容器。同时在容器中我们在几秒钟内就能创建其他一些主机,这就能非常简单的模拟出一个网络。

我使用的是Ubuntu14.04. 然后用root用户运行下面的命令就可以创建好2个容器了。

lxc-create -t download -n pyServer

启动服务器

现在我们创建好了容器,先进入到服务器容器中并启动我们的服务器程序。用root权限运行下面这条命令就可以启动容器了:lxc-start -n pyServer -d, 这将启动容器作为我们的守护进程。让我们先重新连接进入这个容器。这里我喜欢使用screen,这样我可以很方便的进出到容器中。先创建screen会话: screen -dRR pyServer,需要重新连接到容器中的话,可以用命令:lxc-attach -n pyServer

当我们进入到容器中后,我们需要安装python并启动服务器。

apt-get install python

打开vim(或你个人偏好的文本编辑器),敲入以下python代码。

from socket import *

这段代码很直观。我们创建了一个serverSocket监听12000端口。当接收到请求的时候(包含用户名)就会回复一条信息。启动服务器的命令是 python pyServer.py 如果一切正常的话,你应该可以看到这样一条信息 This server is ready to rock and roll! 用Ctrl+a 和Ctrl+d退出容器(还有screen会话)

现在服务器端已经准备就绪,改让客户端跑起来了。在开始前先查一下服务器容器的IP

lxc-start -n pyClient -d

在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 = 12000clientSocket = socket(AF_INET, SOCK_DGRAM)

这段代码也很直观。要求用户输入用户名,然后发送到服务器,最后打印出服务器响应信息。

现在你可以自己来了!保存文件,然后执行python程序 python pyClient.py .在你输入你的名字并按下回车后,就应该可以收到一条来自服务器的响应信息。

这是一个非常简单的例子,但我们很容易就发现,可以在这些基础的代码上面做一些拓展就可以实现很多更有趣也更复杂的应用。我们还可以利用LXC强大的功能但简便的操作模拟出一个更大的网络从而实现一个分布式应用。


鲜花

握手

雷人

路过

鸡蛋
用心服务创业者
0851-88611148
周一至周五 9:00-18:00
意见反馈:admin@0851life.com

扫一扫关注我们

Powered by 童码少儿编程 X3.4© 2001-2013 0851life Inc.|网站地图