Python网络编程一

一.一些基本概念

在Python网络编程这一节中会涉及到很多网络相关的术语,对于一些最基本的概念,如TCP/IP,Socket等等不再赘述,不明白的可以自己去查一查,对于一些常见但是可能不是很熟悉的术语这里做了一个简要的介绍,后续遇到不会因此止步。

SNTP:简单网络时间协议(Simple Network Time  Protocol)简单来说就是用来同步因特网中的计算机时钟,需要注意的是这里的SNTP是用户数据报(UDP)协议。

MIME:Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型,就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

POP3:邮件协议的第三个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,由RFC 1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件

SSL:安全套接层(Secure Sockets Layer ),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

IRC:IRC是Internet Relay Chat 的英文缩写,中文一般称为互联网中继聊天。它是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议。经过十年的发展,目前世界上有超过60个国家提供了IRC的服务。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。所有用户可以在一个被称为\"Channel\"(频道)的地方就某一话题进行交谈或密谈。每个IRC的使用者都有一个Nickname(昵称)。

LDAP:LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到.

二.简单的Socket通信

首先我们来看一个简单的示例:

在这个示例中,有几点需要说明一下:

1.这个示例中无论是在服务器端还是客户端都频繁使用了encode()和decode()转码和解码,这是很必要的,否则会出现TypeError:'str' does not support the buffer interface,至于原因,可以查看一下Python3的官方文档,官方文档大体是这么个意思,就是说,从Python2到Python3的演变时,套接字传送的数据全部转变成Byte类型了,也即:

socket.send(bytes[, flags]) 形参为字节类型

socket.recv(bufsize[, flags]) Receive datafrom the socket. The return value is a bytes object representing the data received.

所以需要用encode()和decode()转码和解码,至于encode()和decode(),官方给出的解释是这样的:

Codec.encode(input[, errors])

Encodes the object input and returns atuple (output object, length consumed). Encoding converts a string object to abytes object using a particular character set encoding

Codec.decode(input[, errors])

Decodes the object input and returns atuple (output object, length consumed). Decoding converts a bytes objectencoded using a particular character set encoding to a string object.

input must be a bytes object or one whichprovides the read-only character buffer interface – for example, buffer objectsand memory mapped files

这里官方的解释应该算是很明了了吧。

2.刚刚的示例中使用的是用户数据报协议(UDP),并不关心可靠性,还有一种可靠协议TCP/IP,我们也来试一下:

三.一些常见的Socket运用

1.邮件发送

在邮件发送这一块,我试了很多次邮箱,发现163的邮箱一次成功,但是QQ邮箱总是登陆不上,花了好长时间都没找到原因,头有点晕了。。。还希望有过了解的朋友能够指点一二。但平时用的最多的还是qq邮箱和gmail邮箱,前者行不通就试了一下后者,发现效果还挺好的,如下:

我们来看一下结果:

我们来看一下结果:

虽然Python对于网络这一块很是方便,但是学起来还是感觉问题多多,突然发现天亮了,好累,睡觉去了

转载于:https://www.cnblogs.com/ainima/p/6331115.html

python进阶九_网络编程相关推荐

  1. 逆袭之路——python进阶基础之 网络编程【day32】

    今日内容概要 温馨提示:今日内容全部理论没有一行代码,只需要听懂即可,很简单!!! 软件开发结构 网络编程简介 OSI七层协议简介 OSI七层协议01 网络知识补充 专业设施名词 OSI七层协议02 ...

  2. python udp通信_Python网络编程(三)

    回顾 在<Python进阶记录之网络编程(二)>中,我们介绍了UDP端口号的基本概念和作用以及Python中UDP服务端的端口绑定和简单创建.今天我们利用UDP server和UDP cl ...

  3. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  4. python开发之Socket网络编程

    python开发之Socket网络编程 一.SOCKET基础 二.SOCKET通信流程 1. 流程描述: 2. 相关方法及参数介绍: 三.实例(屌丝追女神的故事) 1. 故事1:(一次通信) 2. 故 ...

  5. Python之TCP Socket网络编程

    0 背景 Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网 ...

  6. python语言编程基础视频_网络编程-5_ Python系列视频(一)——Python语言基础_Python视频-51CTO学院...

    通过学习,对Python有一定的了解,学习Python语法,可以使用Python原生语言开发项目.对于Python的应用于开发有一个系统的认知,对于未来的发展方向有清晰的认识.主要知识点包括基本语法. ...

  7. Python面向对象进阶和socket网络编程

    写在前面 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese:def __init__(self, ...

  8. python 在线编程 实现_Python进阶开发之网络编程,socket实现在线聊天机器人

    系列文章 本文目录 .什么是socket? 说到网络编程,难免要提到socket? 那什么是socket呢,中文名叫"套接字",更难理解了吧. 通俗来讲,socket表示一个网络连 ...

  9. [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

    很早以前研究过C#和C++的网络通信,参考我的文章:                  C#网络编程之Tcp实现客户端和服务器聊天                 C#网络编程之套接字编程基础知识   ...

最新文章

  1. vue-lazyload 的vue 懒加载的使用
  2. 08_索引与切片,Indexing,Python风格的索引,index_select()选择特定索引,使用...索引任意多的维度,使用mask索引,take索引
  3. 【今日直播】致前端:不要再打了.gif
  4. WPF 实现音频播放动画控件
  5. 对视频中的特征颜色物体(青色水杯)进行跟踪
  6. 计算机网络把许多什么连接在一起,计算机网络技术基础知识汇总习题
  7. jdk/jre/jvm联系
  8. github上传自己的项目
  9. CSS3导入字体后用另外一种索引去加载字体里面的字符的问题。
  10. SlidingMenu使用笔记
  11. linux下集成开发环境之ECLIPSE--在线调试、编译程序
  12. python画图软件是哪个_python画图软件是哪个
  13. 问卷与量表数据分析(SPSS+AMOS)学习笔记(十四) :量表初测阶段的信度分析,删除题项
  14. raster包—stack函数
  15. 手机麻将java开发_2019手机麻将游戏是怎么开发出来的
  16. 题目:大写年月日改写成阿拉伯数字
  17. 笔记:Bootstrap导航与router-link 不和谐
  18. 《我想进大厂》之Java基础夺命连环14问
  19. cometd java_Jetty cometd(Continuation)学习笔记
  20. python爬取每日一文meiriyiwen.com

热门文章

  1. python canvas获取的图片流数据为空
  2. ik查看分词器:request body or source parameter is required/ missing authentication credentials for REST
  3. postman导入swagger文档,并设置cookies进行测试
  4. JAVA JDBC详解
  5. MFC模态窗口与非模态窗口
  6. MQTT再学习 -- 漫谈MQTT协议
  7. Linux graphic subsytem(1)_概述
  8. 自动抢红包,自动安装原理之AccessibilityService
  9. Android的IPC机制Binder
  10. python三引号 内部变量_python在三引号中使用变量