1、架构

  1、C/S架构:client客户端和server服务器端

    优势:能充分发挥pc机的性能

  2、B/S架构:browser浏览器和server服务器    隶属于C/S架构

    B/S架构  统一了应用的接口

2、通信的事

  a、同一台电脑上两个py程序通信:打开一个文件

  b、两个电脑如何通信:连一个网线

  c、多个电脑通信:

    ex:电脑1(源)要找电脑2(目标)

    电脑1首先发送一个请求帧,其中包含(我的IP地址和mac地址,以及我要找的IP地址的主机),将此请求发送给交换机。

    交换机要广播这条消息给其他所有的主机

    目标主机接收到消息后,对比发现自己就是被找的主机,回复给交换机信息(IP地址,mac地址请回复给IP地址为XXX,mac地址为XXX的主机)

    交换机单播形式返回给源主机

3、知识点

  1、mac地址:是一个物理地址

  2、IP地址:是一个四位点分十进制,它标识了计算机在网络中的位置。

  3、交换机的通信方式:

    广播:发送给所有的主机

    单播:一对一

    组播:一对多

  4、arp协议:通过目标IP地址获取目标mac地址的一个协议。

  5、端口:操作系统为本机上每一个运行的程序都随机分配一个端口,其他电脑上的程序可以通过端口获取到这个程序。

  6、路由器:连接不同网段,路由

  7、网关:类似于一个局域网的出口和入口

  8、网段:一个局域网的IP地址范围

  9、子网掩码:子网掩码&IP地址得到网段

  10、osi五层模型:

    应用层:http,https,ftp  

    http:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议

    https:HTTP的安全版

    ftp:FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。

    传输层:tcp/udp                 四层交换机         四层路由器

    tcp:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议

    udp:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向报文的简单不可靠信息传送服务,(快)

    网络层:IP协议                  路由器        三层交换机              

    数据链路层:arp协议         以太网交换机   网卡     网桥

    物理层:传输电信号          中继器、集线器、网线、光纤

4、socket 模块  又叫做套接字模块

   sk = socket.socket(family = AF_INET, type=SOCK_STREAM)

  family:

    AF_UNIX基于文件类型的套接字(源自于unix)

    AF_INET基于网络类型的套接字

    一种是基于TCP协议     SOCK_STREAM

    一种是基于UDP协议     SOCK_DGRAM

  unix系统的中心思想:一切皆文件

 # 客户端
import socket
import time
sk = socket.socket()
sk.connect(("192.168.12.47",8080)) # 8080为端口号
6 sk.send("中文".encode("utf-8")
7 time.sleep(10)
8 sk.close()
 # 服务器端
import socket
import time
sk = socket.socket() # 不传参数,默认使用基于网络类型的套接字,协议:TCP

sk.bind(("192.168.12.47",8080))
sk.listen() # 同时能接收的连接

conn,addr = sk.accept() # 等待接收客户端的连接 组赛等待
msg_r = conn.recv(10) # 接收数据,接收10个字节
print("conn:",conn)
print("addr:",type(addr))
print(msg_r.decode("utf-8"),addr)
time.sleep(10)
conn.close()
sk.close()

5、tcp、udp的流程图

  tcp流程图:

    

  udp流程图:

    

  

网络基础相关的知识 socket模块的更多相关文章

  1. day 28 网络基础相关的知识

    1.网络基础相关的知识 架构 C/S 架构:  client 客户端  server服务器端 优势: 能充分发挥PC机的性能 B/S 架构: browser 浏览器 server服务器       隶 ...

  2. Python网络编程(2)——socket模块(2)

    目录: 1. 异常 2. 地址族 3. 套接字类型 4. 模块方法 5. Socket对象与实例方法 socket模块提供了Python中的低层网络连接接口,用于操作套接字操作. 异常 socket模 ...

  3. 网络基础知识 tcp

    网络基础相关的知识(1)架构a. C / S架构: client客户端和server服务器端 优势: 能充分发挥PC机的性能b. B / S架构: browser浏览器和server服务器 隶属于C ...

  4. 网络基础,tpc,udp

    一 , 网络基础相关知识 1. 架构 (重点) C / S  架构 : client 客户端(APP) 和 server 服务器端 能充分发挥pc机的性能 B / S 架构 : browser 浏览器 ...

  5. Python开发基础-Day23try异常处理、socket套接字基础1

    异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...

  6. 网络编程基础:网络基础之网络协议、socket模块

    操作系统(简称OS)基础: 应用软件不能直接操作硬件,能直接操作硬件的只有操作系统:所以,应用软件可以通过操作系统来间接操作硬件 网络基础之网络协议: 网络通讯原理: 连接两台计算机之间的Intern ...

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

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

  8. Java 网络编程(一) 网络基础知识

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951826.html 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机 ...

  9. Linux运维笔记(一)网络基础知识

    网络基础知识 一.基本概念 1.ARPANET & TCP/IP:以“软件”技术将网络硬件整合,使得不同的计算机或者数据可以通过这个软件达成数据沟通(TCP/IP技术也被称为Internet) ...

随机推荐

  1. csrf xss sql注入

    1.输入框 sql注入 测试直接在输入框输入1' ,看sql会不会拼接出错 xss攻击 csrf攻击 测试直接在输入框输入 <script>alert(123)</script> ...

  2. wordpress模板里加keywords和description

    刚才我说了,wp会弄的话,功能是很强大的,插件很多,基本上你能想到的功能,插件都开发好了的.现在就来说说这个keywords和description的问题.我在网上找了些资料,总结一下,如果有引用到的 ...

  3. 1019 General Palindromic Number (20 分)

    1019 General Palindromic Number (20 分) A number that will be the same when it is written forwards or ...

  4. keras输出中间层结果,某一层的权重、偏置

    转载:https://blog.csdn.net/hahajinbu/article/details/77982721 from keras.models import Sequential,Mode ...

  5. 【Codeforces】CF 911 D. Inversion Counting(逆序对+思维)

    题目 传送门:QWQ 分析 思维要求比较高. 首先我们要把原图的逆序对q算出来. 这个树状数组或归并排序都ok(树状数组不用离散化好评) 那么翻转$[l,r]$中的数怎么做呢? 暴力过不了,我试过了. ...

  6. 【洛谷】P1357 花园(状压+矩阵快速幂)

    题目 传送门:QWQ 分析 因为m很小,考虑把所有状态压成m位二进制数. 那么总状态数小于$ 2^5 $. 如果状态$ i $能转移到$ j $,那么扔进一个矩阵,n次方快速幂一下. 答案是对角线之和 ...

  7. 开源推荐系统Librec中recommender模块算法了解——cf模块

    1.      k近邻(k-NearestNeighbor)算法介绍及在推荐系统中的应用 https://zhuanlan.zhihu.com/p/25994179 k近邻(k-NearestNeig ...

  8. C# 日志记录工具类--LogHelper.cs测试

    C# 日志记录工具类:(适用于不想使用log4j等第三方的Log工具的时候,希望自己写个简单类实现)LogHelper.cs内容如下: using System; using System.Diagn ...

  9. 49. jdk-6u45-linux-i586.bin安装步骤

    # chmod u+x ./jdk-6u45-linux-i586.bin 1.# ./jdk-6u45-linux-i586.bin 在按提示输入yes后,jdk被解压到./jdk1.6.0_45目 ...

  10. Requests库入门

    安装: $ pip install requests Response对象的一些基本属性: Response.status_code 请求的返回状态,正常为200 Response.text 页面的字 ...