python 网络内容: 初识socket
一 C\S架构,客户端服务端架构
客户端(client) : 享受服务端提供的服务 服务端(server) : 给客户端提供服务 B\S 浏览器和服务端 B(browser)
二 网络通信的整个流程(硬件\名词) 集线器:将咱们所有的插上集线器的电脑连通起来
交换机: 升级版集线器
网卡: 接收电信号,网络插口:插网线
mac地址(物理地址): 8C-EC-4B-87-99-D7 16进制的6个数表示,前三位厂商编号,后三位生产流水号
全球唯一的,相当于身份证 广播\单播 广播风暴:首先不安全,拥堵信息 IP地址: 192.168.15.113 四个点分十进制组成
192.168.15.0 -- 192.168.15.255 256 划分广播域
IPv4 :
IPv6 : 6个冒号分十六进制
IPv6 地址: fe80::48c3:8f81:8474:c7d0%2
DHCP协议:自动分配IP地址 子网掩码: 255.255.255.0,
例外一个班的同学的IP地址为:192.168.14.12
192.168.14.12
255.255.255.0 11000000.10101000.00001110.00001100
11111111.11111111.11111111.00000000
11000000.10101000.00001110.00000000
192.168.14.0
计算是否属于同一网段
属于同一个网段的,我们成为属于同一子网 #powerdesigner 制图软件,processon
DNS服务器:域名:www.jd.com -->ip地址
路由器:管理网络,联通外网,并且路由转发,就是转发消息
路由协议:计算最优路径
网关:把关用的,公网IP,也可以说是路由器的IP地址
NAT:网络地址转换,将你局域网的IP地址转换为公网的IP地址,也就是网关的IP地址
局域网\内网
端口:电脑给你创建的标识电脑上的程序用的.
0-65535 ,0-1024 属于电脑内部的一些服务用的,千万别用,8000一般自己写程序的时候都不用. 三.初识socket
例:
服务端:
import socket
#创建了一个socket对象
server = socket.socket() #创建一个手机
ip_port = ('192.168.15.113',8001) #创建了一张电话卡
#绑定IP地址和端口
server.bind(ip_port) #插上电话卡
#监听IP地址和端口 server.listen() #开机
print(11111)
#等待客户端的链接
conn, addr = server.accept() #等着别人给我打电话,阻塞住 #接收消息
from_client_msg = conn.recv(1024) #1024为消息大小,单位B,MB = 1024KB,1KB = 1024B
#接收的消息是bytes类型,需要转换为字符串
from_client_msg = from_client_msg.decode('utf-8')
print(from_client_msg) conn.send('死鬼,十点'.encode('utf-8'))
#关闭链接
conn.close()
server.close() # print(conn)
# print('>>>>',addr)
客户端:
import socket
client = socket.socket() server_ip_port = ('192.168.15.113',8001) #链接服务端
client.connect(server_ip_port) #发消息
client.send('约吗'.encode('utf-8')) #send里面的消息必须是字节类型的 from_server_msg = client.recv(1024) #阻塞住,等待接收消息
from_server_msg = from_server_msg.decode('utf-8')
print(from_server_msg) client.close()
python 网络内容: 初识socket的更多相关文章
- Python网络编程之socket应用
1 引言 本篇主要对Python下网络编程中用到的socket模块进行初步总结.首先从网络基础理论出发,介绍了TCP协议和UDP协议:然后总结了socket中的常用函数:最后通过实际代码展示基本函数的 ...
- python 网络编程:socket(二)
上节地址:Python网络编程:socket 一.send和sendall区别 send,sendall ret = send('safagsgdsegsdgew') #send 发送 ...
- day9学python 类+异常处理+初识socket
类+异常处理+初识socket 类的特点: 1.封装-同其他语言 2.继承 py2 经典类深度优先 新式类类名(object)广度优先py3 都是广度优先 3.多态-python本身无多态 可用方法调 ...
- python学习笔记 - 初识socket
socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. sock ...
- python 网络编程(Socket)
# from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_resp ...
- Python网络编程之Socket的简单实现
一.引入 关于Python的网络编程,最基础莫过于socket了. socket,又称“套接字”,网络上的两个程序如果想要实现双向的数据通信,需要建立连接,这个连接的一端就称为一个socket. py ...
- python 网络编程:socket
在学习socket之前,我们先复习下相关的网络知识. OSI七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.OSI七层模型是由国际标准化组织ISO定义的网络的基本结构,不仅包括一 ...
- python网络编程之socket
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- Python网络编程之socket编程
什么是Socket? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 ...
随机推荐
- Python全栈之路----函数----内置方法
Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod ...
- 使用try和catch捕获异常
Java程序在执行过程中如果出现异常,会自动生成一个异常对象,该异常对象将被自动提交给JVM,当JVM接收到异常对象时,会寻找能处理这一异常的代码,并把当前异常对象交给其处理,这一过程称为捕获(cat ...
- day05 字典
今日内容(dict) 1.基本格式 2.独有方法 3.公共 4.强制转换 1.基本格式 字典(可变类型,3.6之后是有序) 帮助用户去表示一个事物的信息(事物是有多个属性) 键值不能为集合,列表,字典 ...
- 单源最短路径Dijkstra算法,多源最短路径Floyd算法
1.单源最短路径 (1)无权图的单源最短路径 /*无权单源最短路径*/ void UnWeighted(LGraph Graph, Vertex S) { std::queue<Vertex&g ...
- jenkins构建触发器详解-不登录触发远程构建详解
利用jenkins的远程构建功能,我们可以使用任何脚本,甚至定制一个Web页来控制Job的执行,但是远程构建你如果直接使用的话,老是需要登录才能执行,如何避免登录?稍微折腾了一下,调通了. 1.首先去 ...
- DotNetBar中Supergrid显示树形数据
1.向窗体中拖一个Supergrid控件 2.添加列ID,NAME,MATH,CN,SEX 3.在任务窗格中勾选“Show Tree Lines”和“Show Tree Buttons” 4.添加数据 ...
- G2( bizCharts ) React 绘制混合图例
G2( bizCharts ) React 绘制混合图例, // data-set 可以按需引入,除此之外不要引入别的包 import React from 'react'; import { Cha ...
- Java中产生随机数的两个方法
Java中产生随机数的两个方法 一.利用random方法来生成Java随机数. 在Java语言中生成Java随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java语言提供了一个 ...
- weakSelf 和 strongSelf的区别和用处
block会copy要在block中使用的实变量,而copy会是变量的retainCount + 1,如若在不注意很容易造成循环引用.而所谓的循环引用的本质就是,两个对象相互引用,从而造成对象不能正常 ...
- Java产生死锁的一个简单例子
思路是创建两个字符串a和b,再创建两个线程A和B,让每个线程都用synchronized锁住字符串(A先锁a,再去锁b:B先锁b,再锁a),如果A锁住a,B锁住b,A就没办法锁住b,B也没办法锁住a, ...