1. 内容回顾补充

[] [^] 带有特殊意义的元字符到字符组内大部分都会取消它的特殊意义。

会取消的:

  • [()+*.]
  • -[(-)] -的位置决定了它的意义,写在字符组的第一个位置/最后一个位置就表示一个普通的横杠,写在字符组的其他任何位置都表示一个范围。

2. 课前默写小练习

# 1.找出<h1>123fh</h1><h2>hado</h2>中所有标签内的字符串   爬虫
import re
ret = re.findall('<.*?>(.*?)<.*?>','<h1>123fh</h1><h2>hado</h2>')
print(ret) # 2.找出四则运算表达式中的第一个乘除法
\d+(\.\d+)?[*/]\d(\.\d+)?
\d+(\.\d+)?[*/]-?\d(\.\d+)?
import re
ret = re.search('\d+(\.\d+)?[*/]-?\d(\.\d+)?','2-3*-5/6')
print(ret.group()) # 3.检测用户输入的内容是否是一个合法的身份证号 网页的合法输入(手机号码 qq号码 银行卡号 邮箱地址)
'^[1-9]\d{14}(\d{2}[\dx])?$'
import re
inp = input('>>>').strip()
re.match('[1-9]\d{14}(\d{2}[\dx])?$',inp) # 首选
re.search('^[1-9]\d{14}(\d{2}[\dx])?$',inp)
re.findall('^[1-9]\d{14}(\d{2}[\dx])?$',inp)

3. 今日内容—网络基础

网络基础是为未来的web框架的学习、未来的工作场景做铺垫。

1.两个运行中的程序如何传递信息?

通过文件(一个程序将信息写入文件,另一个程序读取文件获取信息。)

2.两台机器上的两个运行中的程序如何通信?

通过网络

3.网络应用开发架构

  • C/S :client 客户端 server 服务端

    如:迅雷 qq 浏览器 飞秋 输入法 百度云 pycharm git VNC 红蜘蛛 各种游戏

  • B/S:browser 浏览器 server 服务端

    如:淘宝 邮箱 各种游戏 百度 博客园 知乎 豆瓣 抽屉

  • 未来网络应用的趋势:统一程序的入口

  • B/S 和 C/S 架构的关系:

    B/S是特殊的C/S架构

4.网络名词概念

  • 网卡 :是一个实际存在在计算机中的硬件

  • mac地址 :每一块网卡上都有一个全球唯一的mac地址

  • 交换机 :是连接多台机器并帮助通讯的物理设备,只认识mac地址

  • 什么是协议?

    server 和 client 得到的内容都是二进制,所以每一位代表什么内容,对于计算机来说,必须先约定好再按照约定进行发送和解析。

  • 协议 :两台物理设备之间对于要发送的内容,长度,顺序的一些约定

  • ip地址:

    • ipv4协议 4位的点分十进制 32位2进制表示

      0.0.0.0 - 255.255.255.255

    • ipv6协议 6位的冒分十六进制 128位2进制表示

      0:0:0:0:0:0-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

  • 公网ip

    为什么你的外地朋友的电脑我们访问不了

    每一个ip地址要想被所有人访问到,那么这个ip地址必须是你申请的

  • 内网ip

    内网可以使用的网段:

    • 192.168.0.0 - 192.168.255.255

      172.16.0.0 - 172.31.255.255

      10.0.0.0 - 10.255.255.255
  • 局域网间的通讯:通过路由器

  • 交换机实现的arp协议(即交换机进行局域网内的通讯)

    通过ip地址获取一台机器的mac地址

    交换机的三种通讯模式:广播、单播、组播

    arp协议:地址解析协议

  • 网关ip:一个局域网的网络出口,访问局域网之外的区域都需要经过路由器和网关

  • 网段:指的是一个地址段 x.x.x.0 x.x.0.0 x.0.0.0

  • ip地址

    子网掩码 判断两台机器是否在同一个网段内的

    # 255.255.255.0 子网掩码
    # 11111111.11111111.11111111.00000000 # 192.168.12.87
    # 11000000.10101000.00001100.01010111
    # 11111111.11111111.11111111.00000000
    # 11000000.10101000.00001100.00000000 192.168.12.0 # 192.168.12.7
    # 11000000.10101000.00001100.00000111
    # 11111111.11111111.11111111.00000000
    # 11000000.10101000.00001100.00000000 192.168.12.0
  • ip 地址能够确认一台机器

  • port 端口 (确认一个应用)

    port 范围:0-65535

  • ip + port 确认一台机器上的一个应用

5.小练习

server服务端 与 client客户端 之间信息的发送与接收

# server.py 服务端
import socket sk = socket.socket() # 买手机 sk.bind(('127.0.0.1',9000)) # 绑定卡号
sk.listen() # 开机 conn,addr = sk.accept() # 等着接电话
conn.send(b'hello')
msg = conn.recv(1024)
print(msg)
conn.close() # 挂电话
sk.close() # 关机 (关掉服务端) # client.py 客户端
import socket
sk = socket.socket()
sk.connect(('127.0.0.1',9000)) msg = sk.recv(1024)
print(msg)
sk.send(b'byebye') sk.close()

注意:server服务端 与 client客户端 同时运行,先打开server服务端,再client客户端 。

python 网络编程基础的更多相关文章

  1. Python网络编程基础pdf

    Python网络编程基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1VGwGtMSZbE0bSZe-MBl6qA 提取码:mert 复制这段内容后打开百度网盘手 ...

  2. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程 并行与并发 同步与异步 阻塞与非阻塞 CPU密集型与IO密集型 线程与进程 进 ...

  3. 好书推荐---Python网络编程基础

    Python网络编程基础详细的介绍了网络编程的相关知识,结合python,看起来觉得很顺畅!!!

  4. Python网络编程基础|百度网盘免费下载|零基础入门学习资料

    百度网盘免费下载:Python网络编程基础|零基础学习资料 提取码:k7a1 目录: 第1部分 底层网络 第1章 客户/服务器网络介绍 第2章 网络客户端 第3章 网络服务器 第4章 域名系统 第5章 ...

  5. Python网络编程基础 PDF 完整超清版|网盘链接内附提取码下载|

    点此获取下载地址提取码:y9u5 Python网络编程最好新手入门书籍!175个详细案例,事实胜于雄辩,Sockets.DNS.Web Service.FTP.Email.SMTP.POP.IMAP. ...

  6. 第九章:Python の 网络编程基础(一)

    本課主題 何为TCP/IP协议 初认识什么是网络编程 网络编程中的 "粘包" 自定义 MySocket 类 本周作业 何为TCP/IP 协议 TCP/IP协议是主机接入互网以及接入 ...

  7. python网络编程基础

    一.客户端/服务器架构 网络中到处都应有了C/S架构,我们学习socket就是为了完成C/S架构的开发. 二.scoket与网络协议 如果想要实现网络通信我们需要对tcpip,http等很多网络知识有 ...

  8. Python网络编程基础 ❶ 计算机网络基础 初用socket模块

    1.计算机网络基础 C/S  客户端/服务器端 B/S  浏览器端/服务器端 mac地址,ip地址,子网掩码,与计算得到网段,端口号每台计算机的网卡都有全球唯一的地址,在生产时已经写进去了. ip地址 ...

  9. python网络编程基础(一)

    一.C/S架构 客户端/服务端架构 二.OSI七层架构 七层模型,亦称OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机 ...

  10. Python——网络编程基础

    一.TCP/IP 是Internet的基础协议,分四层应用层(HTTP,SMTP),传输层(TCP/UDP),网络层(IP),接口层 二.常用默认端口号 80-TCP-HTTP 23-TCP-TELN ...

随机推荐

  1. 洛谷P3569 [POI2014]KAR-Cards(线段树)

    传送门 蠢了…… 我们用线段树,记$w0$为该区间最左端取小值时,最右端最小能取大还是小还是无解,$w1$表示最左端取大值时,最右端最小能取大还是小还是无解 然后只要把交换看做修改就好了 这么说可能很 ...

  2. Ubuntu 18 开机后直接进入命令行界面,没法进入桌面

    应该是之前不知道干啥,删了gnome的一个东西,导致没法正常进入 暴力解决,直接重装桌面环境 sudo apt install ubuntu-desktop

  3. mysql 循环批量插入

    背景 前几天在MySql上做分页时,看到有博文说使用 limit 0,10 方式分页会有丢数据问题,有人又说不会,于是想自己测试一下.测试时没有数据,便安装了一个MySql,建了张表,在建了个whil ...

  4. postgreSQL 创建user表时引发的表名大写与双引号问题

    在postgreSQL里面,user是一个保留字. 如果你想创建user表,你可能会遭遇一些问题! 如图: 可以看到,这里是无法创建user表的. 你可能会说,我只是没有加双引号"" ...

  5. javascript监听值变化

    最近面了有道前端实习,人品爆发一面过了.但是在一面中面试官问了一个问题”MVC用javascript如何实现?如果实现双向绑定?值变化监听?“ 当时我回答”js好像没函数进行值变化监听“ 后来想想很不 ...

  6. TCP模型,控制标志,握手,挥手,长连接*

    1. TCP协议 Transmission Control Protocol,传输控制协议 面向连接的协议 需要三次握手建立连接 需要四次挥手断开连接 TCP报头最小长度:20字节 2.模型图 3.T ...

  7. C#连接数据库_使用读取配置文件的方式

    using System; using System.Collections.Generic; using System.Configuration; using System.Data.SqlCli ...

  8. vue全局loading组件

    本组件作用在页面加载完成前进行loader提示,提升用户体验,只需要在app.vue中引用一次,整个项目中路由切换时就可以自动进行提示(vuex版): 1. 添加vuex值和方法: import Vu ...

  9. linux下svn安装(ALI ECS)

    yum安装svn 搭建和使用SVN 可参考阿里云文档:https://help.aliyun.com/document_detail/52864.html?spm=5176.8208715.110.1 ...

  10. 【C++】模板简述(二):函数模板

    我们上文讲了,模板的引入,我们发现在某种特殊的情况下,必须得通过模板才能完美的解决问题. 本文就来简述一下函数模板的基本使用. 一.函数模板格式 template<typename Param1 ...