PYTHON网络编程
Allen_by
充满理想与追求,这一切似在指尖、心尖,都缠绕,都充盈,蓬勃待飞C语言、汇编语言、数据库系统、JAVA编程思想、C++程序设计、数据结构、计算机网络及算法与数据结构等专业知识擅长的计算机语言,以及计算机硬件的知识。数据库知识和经验,网络知识和技能
展开
-
Python - 网络编程
Python网络编程是关于使用python作为编程语言来处理计算机网络需求。例如,如果我们想要创建和运行本地Web服务器,或者从URL自动下载某些文件。随着python作为多年来发展的编程语言的多功能性,我们发现python也非常适合网络编程领域。随着云计算的发展,网络编程已成为一个更热门的话题,而python也扮演着重要的角色。以下是python作为网络编程首选语言使用的几个重要原因。S...原创 2018-12-14 09:50:34 · 264 阅读 · 0 评论 -
Python - 实现客户端验证
在分布式系统中实现一个简单的客户端连接认证功能,而又不想像SSL那样的复杂,可以利用 hmac 模块实现一个连接握手,从而实现一个简单而高效的认证过程。#server.pyimport hmacimport osfrom socket import socket, AF_INET, SOCK_STREAMdef server_authenticate(connection, sec...原创 2018-12-28 13:31:11 · 1262 阅读 · 0 评论 -
Python - HTTP响应
http或超文本传输协议适用于客户端服务器模型。通常,Web浏览器是客户端,托管该网站的计算机是服务器。在收到来自客户端的请求后,服务器生成响应并以特定格式将其发送回客户端。状态代码Status-Code元素是一个3位整数,其中Status-Code的第一个数字定义了响应类,后两个数字没有任何分类角色。第一个数字有5个值:SN代码和描述1xx:信息这意味着收到了请求...原创 2018-12-18 09:48:02 · 1115 阅读 · 0 评论 -
Python - HTTP Headers
客户端和服务器之间的请求和响应涉及消息中的标题和正文。标头包含出现在通过TCP连接发送的原始消息开头的协议特定信息。使用空行将邮件正文与标题分隔开。Cache-ControlCache-Control通用头字段用于指定所有缓存系统必须遵守的指令。语法如下:Cache-Control : cache-request-directive|cache-response-directiveHT...原创 2018-12-18 10:02:57 · 1024 阅读 · 0 评论 -
事件驱动的IO
事件驱动I/O本质上来讲就是将基本I/O操作(比如读和写)转化为你程序需要处理的事件。 例如,当数据在某个socket上被接受后,它会转换成一个 receive 事件,然后被你定义的回调方法或函数来处理。 作为一个可能的起始点,一个事件驱动的框架可能会以一个实现了一系列基本事件处理器方法的基类开始UDP 实现#server.pyimport selectimport socketim...原创 2018-12-29 10:36:19 · 643 阅读 · 0 评论 -
发送与接收大型数组
通过网络连接发送和接受连续数据的大型数组,并尽量减少数据的复制操作。#server.pyimport numpyfrom socket import *s = socket(AF_INET, SOCK_STREAM)s.bind(('', 25000))s.listen(1)c, a = s.accept()def send_from(arr, dest): view...原创 2018-12-29 10:49:16 · 464 阅读 · 1 评论 -
Python - HTTP客户端
在http协议中,来自客户端的请求到达服务器并获取一些数据和元数据,假设它是有效请求。我们可以使用python请求模块中提供的各种函数来分析服务器的响应。这里下面的python程序在客户端运行,并显示服务器发送的响应结果。获取响应import requestsr = requests.get('https://httpbin.org/')print(r.text)[:200]获取...原创 2018-12-24 09:37:53 · 2939 阅读 · 0 评论 -
Python - HTTP服务器
Python标准库附带了一个内置的Web服务器,可以调用它来进行简单的Web客户端服务器通信。可以通过编程方式分配端口号,并通过此端口访问Web服务器。虽然它不是一个可以解析多种文件的全功能Web服务器,但它可以解析简单的静态html文件,并通过响应所需的响应代码来提供它们。import http.serverimport socketserverPORT = 8001Handler ...原创 2018-12-24 09:50:42 · 434 阅读 · 0 评论 -
Python - 构建URL
Requests模块可以帮助我们构建URL并动态操作URL值。可以通过编程方式获取URL的任何子目录,然后可以使用新值替换其中的某些部分以构建新URL。Build_URLfrom requests.compat import urljoinbase='https://stackoverflow.com/questions/3764291'print(urljoin(base,'.'))p...原创 2018-12-24 09:57:41 · 3205 阅读 · 0 评论 -
Python - FTP下载
将使用处理ftp文件传输协议的python模块从服务器下载数据。还可以读取数据,然后将其保存到本地系统。获取文件我们可以使用getfile方法获取特定文件。此方法将文件的副本从远程系统移动到启动ftp连接的本地系统。import ftplibimport sysdef getFile(ftp, filename): try: ftp.retrbinary("R...原创 2018-12-19 11:04:41 · 843 阅读 · 0 评论 -
构建TCP服务器
实现一个服务器,通过TCP协议和客户端通信#server.pyfrom socketserver import BaseRequestHandler, TCPServerclass EchoHandler(BaseRequestHandler): def handle(self): print('Got connection from', self.client_a...原创 2018-12-26 10:46:21 · 879 阅读 · 1 评论 -
Socket 编程
Socket 也叫做“套接字”, 计算机网络通信中最为基础的内容,通过对TCP/IP协议的封装提供了在不同主机之间进行通信的功能。当通过浏览器访问一个网站的时候,浏览器会为我们打开一个套接字,通过套接字建立与服务器之间的连接,连接成功后服务器提供对访问的响应并返回内容最终在浏览器中显示出来。分为服务器端客户端服务器端- 创建套接字- 绑定端口- 监听端口- 接受连接- 接收...原创 2019-03-27 22:32:56 · 186 阅读 · 0 评论 -
Python - 实现远程方法调用
在一个消息传输层如 sockets 、multiprocessing connections 或 ZeroMQ 的基础之上实现一个简单的远程过程调用(RPC)。#server.pyimport picklefrom multiprocessing.connection import Listenerfrom threading import Threadclass RPCHandle...原创 2018-12-28 11:21:41 · 5674 阅读 · 0 评论 -
在不同的Python解释器实现通信
通过使用 multiprocessing.connection 模块可以很容易的实现解释器之间的通信。#server.pyfrom multiprocessing.connection import Listenerimport tracebackdef echo_client(conn): try: while True: msg = ...原创 2018-12-28 11:01:25 · 431 阅读 · 0 评论 -
Python - Internet协议
Internet协议旨在在所有连接到Internet的计算机上实现统一的地址系统,并使数据包能够从Internet的一端传输到另一端。像Web浏览器这样的程序应该能够在任何地方连接到主机,而无需知道每个数据包在其旅程中穿过的网络设备的迷宫。有各种类别的互联网协议。创建协议是为了满足互联网中不同计算机之间不同类型数据通信的需求。Python有几个模块来处理这些通信场景。这些模块中的方法和功能可以完...原创 2018-12-14 10:03:03 · 379 阅读 · 0 评论 -
Python - IP地址
IP地址(Internet协议)是一种基本的网络概念,可在网络中提供地址分配功能。python模块ipaddress广泛用于验证IP地址到IPV4和IPV6类型并将其分类。它还可以用于比较IP地址值以及用于操作ip地址的IP地址算法。验证IPV4地址ip_address函数验证IPV4地址。如果值的范围超过0到255,则会引发错误。import ipaddressprint(ipaddre...原创 2018-12-14 13:53:25 · 1278 阅读 · 0 评论 -
Python - 连接重用
当客户端向服务器发出有效请求时,会在它们之间建立临时连接以完成发送和接收过程。但是有些情况下需要保持连接,因为需要在正在通信的程序之间进行自动请求和响应。以互动网页为例。加载网页后,需要提交表单数据或下载更多CSS和JavaScript组件。连接需要保持活动状态,以便在客户端和服务器之间实现更快的性能和不间断的通信。from urllib3 import HTTPConnectionPool...原创 2018-12-20 10:18:47 · 724 阅读 · 0 评论 -
Python - 网络接口
当我们在一台机器中有多个接口时,我们需要跟踪它们的名称,状态等。在Python中,我们可以列出接口及其状态。import netifacesprint(netifaces.interfaces())print(netifaces.ifaddresses('{3E9F7770-8FDD-4839-B7F1-1D86CB928E77}'))#print(netifaces.AF_LINK...原创 2018-12-20 10:30:52 · 1860 阅读 · 0 评论 -
Python - 套接字编程
Python提供两种级别的网络服务访问。在较低级别,您可以访问底层操作系统中的基本套接字支持,这允许您为面向连接的协议和无连接协议实现客户端和服务器。Python还具有库,可以提供对特定应用程序级网络协议的更高级别访问,例如FTP,HTTP等。套接字是双向通信信道的端点。套接字可以在进程内,同一台机器上的进程之间或不同的进程之间进行通信。我们在python中使用socket模块来创建和使用套接...原创 2018-12-21 10:02:07 · 839 阅读 · 1 评论 -
创建UDP服务器
实现一个基于UDP协议的服务器来与客户端通信。UDP服务器也可以通过使用 socketserver 库很容易的被创建。先定义一个实现 handle() 特殊方法的类,为客户端连接服务。 这个类的 request 属性是一个包含了数据报和底层socket对象的元组。client_address 包含了客户端地址。from socketserver import BaseRequestHandl...原创 2018-12-27 10:00:11 · 2098 阅读 · 0 评论 -
生成无类别域间路由(Classless Inter-Domain Routing)
有一个CIDR网络地址比如“123.45.67.89/27”,你想将其转换成它所代表的所有IP (比如,“123.45.67.64”, “123.45.67.65”, …, “123.45.67.95”))使用ipaddress模块import ipaddressnet = ipaddress.ip_network('123.45.67.64/27')for i in net: ...原创 2018-12-27 10:07:48 · 655 阅读 · 0 评论 -
Python - DNS查询
转换为人类可读格式或单词时的IP地址称为域名。域名到IP地址的转换由python模块dnspython管理。该模块还提供了查找CNAME和MX记录的方法。找到’A’记录在下面的程序中,我们使用dns.resolver方法找到域的ip地址。通常,IP地址和域名之间的映射也称为“A”记录。import dns.resolverresult = dns.resolver.query('baid...原创 2018-12-17 09:48:54 · 3482 阅读 · 0 评论 -
Python - HTTP请求
http或超文本传输协议适用于客户端服务器模型。通常,Web浏览器是客户端,托管该网站的计算机是服务器。在python中,我们使用requests模块来创建http请求。它是一个非常强大的模块,可以处理简单请求和响应数据之外的http通信的许多方面。它可以处理身份验证,压缩/解压缩,分块请求等。HTTP客户端以请求消息的形式向服务器发送HTTP请求,其中包括以下格式:请求行零个或多个标...原创 2018-12-17 10:07:39 · 1688 阅读 · 0 评论 -
实现简单的REST接口
有时候想使用一个简单的REST接口通过网络远程控制或访问你的应用程序,但是又不想自己去安装一个完整的web框架。#resty.pyimport cgidef notfound_404(environ, start_response): start_response('404 Not Found', [('Content-type', 'text/plain')]) ret...原创 2018-12-28 10:18:04 · 1826 阅读 · 0 评论 -
通过XML-RPC实现服务器远程调用
有时需要执行运行在远程机器上面的Python程序中的函数或方法。即可以使用这种RPC。#server.pyfrom xmlrpc.server import SimpleXMLRPCServerclass KeyValueServer: _rpc_methods_ = ['get', 'set', 'delete', 'exists', 'keys'] def __init...原创 2018-12-28 10:52:04 · 690 阅读 · 0 评论 -
实现简单的Web框架
# coding=utf-8from wsgiref.util import setup_testing_defaultsfrom wsgiref.simple_server import make_serverdef simple_app(environ, start_response): setup_testing_defaults(environ) status...原创 2019-03-28 21:09:48 · 254 阅读 · 0 评论