Python 学习 第二册 第14章 网络编程

----用教授的方式学习

目录

14.1 几个网络模块

14.1.1 模块 socket

14.1.2 模块 urllib 和 urllib2

14.1.3 其他模块

14.2 SocketServer 及相关的类

14.3.1 使用 SocketServer 实现分叉和线程化

14.3.2 使用 select 和 poll 实现异步 I/O 

14.4 Twisted 

14.4.1 下载并安装 Twisted 

14.4.2 编写 Twisted 服务器


14.1 几个网络模块

14.1.1 模块 socket

网络编程中的一个基本组件是套接字(socket)。套接字基本上是一个信息通道,两端各有一个程序。

套接字分为两类:服务器套接字和客户端套接字。创建服务器套接字后,让它等待连接请求的到来。

使用举例:

最简单的服务器

import socket 
s = socket.socket() 
host = socket.gethostname() 
port = 1234 
s.bind((host, port))
s.listen(5)
while True: c, addr = s.accept() print('Got connection from', addr) c.send('Thank you for connecting')c.close()

最简单的客户端

import socket 
s = socket.socket() 
host = socket.gethostname() 
port = 1234 
s.connect((host, port))
print(s.recv(1024))

14.1.2 模块 urllib 和 urllib2

1. 打开远程文件

几乎可以像打开本地文件一样打开远程文件,差别是只能使用读取模式,以及使用模块urllib.request中的函数urlopen,而不是open(或file)。

>>> from urllib.request import urlopen 

>>> webpage = urlopen('http://www.python.org') 

2. 获取远程文件

函数urlopen返回一个类似于文件的对象,可从中读取数据。如果要让urllib替你下载文件,并将其副本存储在一个本地文件中,可使用urlretrieve。

urlretrieve('http://www.python.org', 'C:\\python_webpage.html')

14.1.3 其他模块

标准库中一些与网络相关的模块

模 块 

描 述

asynchat 

包含补充asyncore的功能

asyncore 

异步套接字处理程序

cgi 

基本的CGI支持

Cookie 

Cookie对象操作,主要用于服务器

cookielib 

客户端Cookie支持

email 

电子邮件(包括MIME)支持

ftplib 

FTP客户端模块

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊jetcache的CacheManager

序 本文主要研究一下jetcache的CacheManager CacheManager jetcache-core/src/main/java/com/alicp/jetcache/CacheManager.java public interface CacheManager {<K, V> Cache<K, V> getCache(String area, String cacheName);void putCache(String area, Str…

架构扩展性

应用扩展性 X轴横向克隆 X轴横向克隆是指将应用部署在多个节点上&#xff0c;以实现负载均衡和高可用性。对于无状态应用&#xff0c;可以通过多节点克隆复制来实现横向扩展。而对于有状态应用&#xff0c;需要处理状态剥离&#xff0c;例如Session的处理。 具体来说&#x…

每日AI资讯-20240616

1. AI漫画角色一致性大突破 由中山大学和联想团队联合提出AutoStudio&#xff0c;它是一个无需训练的多智能体协同框架。AutoStudio采用基于大语言模型的三个智能体来处理交互&#xff0c;并使用基于扩散模型的Drawer生成高质量图像。实验中&#xff0c;AutoStudio无论是在定量…

java 将获取json中的值

在Java中&#xff0c;可以使用FastJson库来获取JSON中的value值。下面是一个简单的示例代码&#xff1a; import com.alibaba.fastjson.JSONObject;public class JsonExample {public static void main(String[] args) {// JSON字符串String jsonString "{\"key1\&…

腾讯地图避坑-获取地图点击点的经纬度

map.on(click,(evt)>{console.log("evt",evt)let lat evt.latLng.getLat();//lat 获取let lng evt.latLng.getLng();//lng 获取console.log("evt.latLng-有效方式",evt.latLng)console.log("evt[latlng]-无效方式",evt[latlng])})

PiDiNet推理手顺

GitHub链接 https://github.com/hellozhuo/pidinet 运行环境 Pyhton 3.8 filelock3.14.0 fsspec2024.5.0 imageio2.34.1 intel-openmp2021.4.0 Jinja23.1.4 lazy_loader0.4 MarkupSafe2.1.5 mkl2021.4.0 mpmath1.3.0 networkx3.1 numpy1.24.4 open…

小程序外卖开发中的关键技术与实现方法

小程序外卖服务凭借其便捷性和灵活性&#xff0c;正成为现代餐饮行业的重要组成部分。开发一个功能完善的小程序外卖系统&#xff0c;需要掌握一系列关键技术和实现方法。本文将介绍小程序外卖开发中的核心技术&#xff0c;并提供具体的代码示例&#xff0c;帮助开发者理解和实…

Verilog-学习verilog中遇到的问题总结

#学习记录# 目录 1 verilog中~和&#xff01;的区别 1 verilog中~和&#xff01;的区别 &#xff01;表示逻辑取反&#xff0c;~表示按位取反。当面对位宽为1时&#xff0c;两个操作符的作用相同。当位宽不为1时&#xff1a; ~会将变量的各个位依次取反&#xff1a;a[2:0]{…

认识异常

一、异常的概念和体系结构 1、异常的概念 在Java中&#xff0c;将程序执行过程中发生的不正常行为称为异常&#xff0c;常见的有算术异常&#xff0c;数组越界异常&#xff0c;空指针异常 2、异常的体系结构 从上图中可以看到&#xff1a; 1.Throwable&#xff1a;是异常体系…

Euro Efficiency(POJ, Open judge)

题目链接: 1252 -- Euro Efficiency 题目描述: 思路: 题面的大概意思就是给你一组基本面值的钱币&#xff0c;问你要凑出指定的面值最少需要多少个钱币的参与&#xff0c;钱币的参与可以是加法也可以是减法。 分析一下&#xff0c;由于答案与钱币参与的顺序无关&#xff0c;…

机器学习-课程整理及初步介绍

简介: 机器学习是人工智能的一个分支&#xff0c;它使计算机系统能够从经验中学习并改进其在特定任务上的表现&#xff0c;而无需进行明确的编程。机器学习涉及多种算法和统计模型&#xff0c;它们可以从数据中学习规律&#xff0c;并做出预测或决策。机器学习的应用非常广泛&…

LabVIEW的热门应用

LabVIEW是一种图形化编程语言&#xff0c;因其易用性和强大的功能&#xff0c;在多个行业和领域中广泛应用。介绍LabVIEW在以下五个热门应用领域中的使用情况&#xff0c;&#xff1a;工业自动化、医疗设备与生物医学工程、科学研究与实验室自动化、能源管理与智能电网、航空航…

[Shell编程学习路线]——if条件语句(单,双,多分支结构)详细语法介绍

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f6e0;️Shell编程专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月17日7点50分 &#x1f004;️文章质量&#xff1a;95分 文章目录 ————前言———— &#x1f4af;趣站&#x1f4af…

C语言王国——深入自定义类型(结构体)

目录 一、引言 二、结构体 1. 结构体类型的声明 2. 结构体变量的创建和初始化 2.1 创建 2.2 初始化 2.3 typedef 2.4 特殊声明 2.5 自引用 3. 结构成员访问操作符 4. 结构体内存对齐 4.1 对齐规则 4.2 offsetof 4.3 为什么存在内存对齐 5. 结构体传参 6. 结构体实现…

RTOS实时操作系统

常见的RTOS有&#xff1a; VxWorks&#xff1a;广泛应用于工业、医疗、通信和航空航天领域。FreeRTOS&#xff1a;一个开源的RTOS&#xff0c;广泛用于嵌入式设备。uc/OS&#xff1a;一个适用于教育和小型商业项目的RTOS。QNX&#xff1a;主要应用于汽车和工业自动化领域。Win…

探索C嘎嘎的奇妙世界:第三关---缺省参数与函数重载

在c语言中,我们常常在对有参函数进行传参,这样的繁琐过程,C祖师爷对此进行了相关改进,多说无益,上干货: 1 缺省参数: 缺省参数是指在声明或定义函数时为函数的形参指定一个默认值&#xff08;默认参数&#xff09;。在调用该函数时&#xff0c;如果没有指定实参&#xff0c;则…

Linux常⽤服务器构建-ssh和scp

目录 1.ssh <1>ssh介绍 <2>安装ssh A.安装ssh服务器 B.远程登陆 <3>使⽤ssh连接服务器 2.scp 本地⽂件复制到远程&#xff1a; 本地⽬录复制到远程&#xff1a; 远程⽂件复制到本地&#xff1a; 远程⽬录复制到本地&#xff1a; 1.ssh <1>…

SQLite检索查询结果函数

代码 database.h #include <sqlite3.h> // &#xfffd;&#xfffd;&#xfffd;&#xfffd;SQLite&#xfffd;ӿں&#xfffd;&#xfffd;&#xfffd;#include<stdio.h>// &#xfffd;&#xfffd;&#xfffd;&#xfffd;һ&#xfffd;&#…

TalkingData数据统计:大数据时代的洞察与应用

目录 一 TalkingData简介 公司概述 核心产品 二 数据统计方法 1数据采集 SDK集成 API接口 第三方数据合作 2数据处理与清洗 数据去重 数据校验 数据转换 3数据存储 分布式数据存储 数据分区和索引 4数据分析 描述性统计 探索性数据分析(EDA) 预测性分析 …

04-jQuery工具函数及 jQuery 插件

1. jQuery工具函数 在jQuery中,工具函数是指直接依附于jQuery对象,针对jQuery对象本身定义的方法,即全局性的,我们统称为工具函数,或Utilites函数。 主要作用于&#xff1a;字符串、数组、对象。 调用格式: $.函数名()或jQuery.函数名() 1.1 $.get() 通过远程 HTTP GET 请…