前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >怎样学Python 第二十二课 Python网络编程基础

怎样学Python 第二十二课 Python网络编程基础

作者头像
用户1631416
发布2018-04-12 13:47:58
6980
发布2018-04-12 13:47:58
举报
文章被收录于专栏:玄魂工作室玄魂工作室

欢迎大家回来!

在上一篇文章中,我们介绍了如何导入模块以及如何使用它们。

在本文中,我们将接触对Python黑客来说至关重要的模块:socket

实质上,套接字模块允许我们制作,维护和使用一个连接,我们可以尝试连接到我们想要的任何端口,连接到我们想要的任何地址,我们也可以使用这些连接来回发送信息。

在本文中,我们将建立一个客户端连接并发送和接收一些数据!

第1步:建立客户端套接字

现在,当我说我们将成为客户端时,我的意思是我们要请求并启动连接,首先,我们需要导入套接字模块,然后我们要创建一个套接字对象。

我们将导入整个模块,因此无论何时我们调用某个模块,我们都需要在它之前插入socket,现在我们来执行这些操作:

>>> import socket>>> >>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

OK,我们已经初始化一个socket对象。 它可能看起来有点奇怪,但如果你仔细想一想,那就完全合理了。

我们将socket类从socket模块中调出,因此称为socket.socket。我们给了这个类一些参数,我们也从套接字模块中提取了参数,socket有很多参数,但是有些参数是你会经常看到的。

第2步:连接到服务器

现在我们有了socket,我们可以将它连接到服务器上,我们将在这里与127.0.0.1(localhost)建立连接,为了连接到对方的地址,我们需要使用connect方法,当我们使用这个方法时,我们需要给出服务器的IP或域名,后面跟着端口号(注:连接之前请关闭防火墙,并安装一个apahce2中间件作为测试服务器)。

这两个都需要写在一个元组中,现在连接我们的套接字:

>>> s.connect((‘localhost’, 80))

现在我们的套接字已连接,我们可以通过它发送和接收数据。

第3步:发送和接收数据

现在我们将socket连接到端口为80的本地地址localhost,当我们建立客户端连接时,我们发送数据的源端口号将由socket随机选择,所以我们不必担心!

现在我们已连接到本地,我们继续并发送一个HTTP GET请求,让我们请求本地的主页。我们可以使用send方法发送请求,并且我们可以使用recv方法接收响应。

现在让我们发送/接收这些信息:

>>> client_request = ’’’Get /index.html HTTP/1.1\n... User-Agent: Python... Connection: keep-alive’’’>>> >>> s.send(client_request)67>>> response = s.recv(1024)

OK,我们已经能够发送HTTP GET请求并接收响应了!

总结

今天我们学习了socket模块的基础知识。这些基础知识包括如何构建客户端套接字,如何与该套接字建立连接以及如何通过该套接字发送和接收数据。

还有很多内容需要报道,但我们会在下一篇文章中完成。

作为一个小公告,我已经决定我们不会涵盖每个模块的每一寸,我们只会介绍他们最常用的功能和用途。

练习

编写一个脚本,使用GET请求index.html,功能如下:

给定三个网址:

www.cn.bing.com

www.sogou.com

www.qq.com

脚本每1分钟检测一下这个三个网络的连通情况,如果发现不连通,则打印Network can not reach,如果连通,打印Network health is good

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第1步:建立客户端套接字
  • 第2步:连接到服务器
  • 第3步:发送和接收数据
  • 总结
  • 练习
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档