欢迎大家回来!
在上一篇文章中,我们介绍了如何导入模块以及如何使用它们。
在本文中,我们将接触对Python黑客来说至关重要的模块:socket。
实质上,套接字模块允许我们制作,维护和使用一个连接,我们可以尝试连接到我们想要的任何端口,连接到我们想要的任何地址,我们也可以使用这些连接来回发送信息。
在本文中,我们将建立一个客户端连接并发送和接收一些数据!
第1步:建立客户端套接字
现在,当我说我们将成为客户端时,我的意思是我们要请求并启动连接,首先,我们需要导入套接字模块,然后我们要创建一个套接字对象。
我们将导入整个模块,因此无论何时我们调用某个模块,我们都需要在它之前插入socket,现在我们来执行这些操作:
OK,我们已经初始化一个socket对象。 它可能看起来有点奇怪,但如果你仔细想一想,那就完全合理了。
我们将socket类从socket模块中调出,因此称为socket.socket。我们给了这个类一些参数,我们也从套接字模块中提取了参数,socket有很多参数,但是有些参数是你会经常看到的。
第2步:连接到服务器
现在我们有了socket,我们可以将它连接到服务器上,我们将在这里与127.0.0.1(localhost)建立连接,为了连接到对方的地址,我们需要使用connect方法,当我们使用这个方法时,我们需要给出服务器的IP或域名,后面跟着端口号(注:连接之前请关闭防火墙,并安装一个apahce2中间件作为测试服务器)。
这两个都需要写在一个元组中,现在连接我们的套接字:
现在我们的套接字已连接,我们可以通过它发送和接收数据。
第3步:发送和接收数据
现在我们将socket连接到端口为80的本地地址localhost,当我们建立客户端连接时,我们发送数据的源端口号将由socket随机选择,所以我们不必担心!
现在我们已连接到本地,我们继续并发送一个HTTP GET请求,让我们请求本地的主页。我们可以使用send方法发送请求,并且我们可以使用recv方法接收响应。
现在让我们发送/接收这些信息:
OK,我们已经能够发送HTTP GET请求并接收响应了!
总结
今天我们学习了socket模块的基础知识。这些基础知识包括如何构建客户端套接字,如何与该套接字建立连接以及如何通过该套接字发送和接收数据。
还有很多内容需要报道,但我们会在下一篇文章中完成。
作为一个小公告,我已经决定我们不会涵盖每个模块的每一寸,我们只会介绍他们最常用的功能和用途。
练习
编写一个脚本,使用GET请求index.html,功能如下:
给定三个网址:
www.qq.com
脚本每1分钟检测一下这个三个网络的连通情况,如果发现不连通,则打印Network can not reach,如果连通,打印Network health is good。
领取专属 10元无门槛券
私享最新 技术干货