python高级编程——网络编程(一)
计算机网络基础
概念:计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信。网络编程就是如何在程序中实现两台计算机的通信。而网络编程就是开发计算机网络应用程序
计算机的通信协议
概念:计算机处理最多的东西就是数据,通信的话就是要传输数据,在传输数据的过程中需要遵循计算机通信协议(TCP/IP)
端口
分类:
物理端口:交换机、路由器、集线器的端口
逻辑端口:
TCP/IP协议端口,端口号的范围从0到65535
保留端口:HTTP 80,FTP 20/21,Telnet 23,SMTP 25,DNS 53,MYSQL 3306
动态端口:范围是从1024到65535
动态分配:当系统进程需要使用网络通信时,向主机申请一个端口,主机从可用的端口中分配 一个供它使用,当进程关闭时,同时释放所占用的端口
查看端口状态:netstat -an
IP地址
IP地址用来在网络中标记一台电脑的一串数字,比如192.168.1.1;在本地局 域网上是惟一的。
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4 个字节)
IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是 0~255之间的十进制整数。
socket套接字
socket简介
本地的进程间通信(IPC)有很多种方式
管道、消息队列、共享内存、Socket等
在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的
Socket是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:
它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的
随着TCP/IP协议的流行,Socket编程已经成为实现网络应用程序的基础。
Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用 程序通常通过"套接字"向网络发出请求或者应答网络请求
socket的创建和类别
Python中使用socket模块的函数socket:
socket.socket(AddressFamily, Type)
socket.socket 创建并返回一个 socket对象
Address Family:可以选择 AF_INET(用于 Internet 进程间通信) 或者 AF_UNIX( 用于同一台机器进程间通信),实际工作中常用AF_INET
Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议)或者 SOCK_DGRAM(数据报套接字,主要用于 UDP 协议)
创建 TCP SOCKET
import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
创建 UDP SOCKET
import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
python高级编程——网络编程(一)的更多相关文章
- python高级之网络编程
python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说 ...
- 第六篇:python高级之网络编程
python高级之网络编程 python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及 ...
- Python之路 - 网络编程之粘包
Python之路 - 网络编程之粘包 粘包
- Python之路 - 网络编程初识
Python之路 - 网络编程初识 前言
- Python中级 —— 04网络编程
网络编程 网络编程对所有开发语言都是一样的,Python也不例外.用Python进行网络编程,就是在Python程序本身这个进程内,连接别的服务器进程的通信端口进行通信. TCP编程 TCP建立可靠连 ...
- python语法基础-网络编程-TCP协议和UDP协议
############### 网络编程 ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...
- python之Socket网络编程
什么是网络? 网络是由节点和连线构成,表示诸多对象及其相互联系.在数学上,网络是一种图,一般认为专指加权图.网络除了数学定义外,还有具体的物理含义,即网络是从某种相同类型的实际问题中抽象出来的模型.在 ...
- python大法好——网络编程
Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...
- 【Python】【网络编程】
#[[网络编程]] # 网络通信就是两个进程之间在通信 # [TCP/IP]'''TCP/IP简介 阅读: 125242虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联 ...
随机推荐
- glog的编译和使用
glog是google提供的一个轻量级日志库,有chromium开发经验的人都会发现,它和base库中的日志库非常像,其实base库中的日志库比它更加轻量级.glog在日常开发中的使用非常广泛.这里介 ...
- 【比赛游记】CSP2019游记
往期回顾:[比赛游记]NOIP2018游记 提高 D1: 密码 Ren2Zhen1Si0Kao9?. A B C 00:04 00:32 -5 \(100 + 100 + 0 = 200\) 因为提前 ...
- Python DataFrame 按条件筛选数据
原始数据如下. 比如我想查看id等于11396的数据. pdata1[pdata1['id']==11396] 查看时间time小于25320的数据. pdata1[pdata1['time']< ...
- oracle中having与where的区别
1.where 不能放在group by 的后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函 ...
- 几个简单js,普通写法和高逼格写法比较
1. 取数组中的数据,并对空值设置默认值: 常规写法: let arr = [0, 1, null, '', 'abc']; let newArr = []; arr.forEach((item, i ...
- [LeetCode] 300. Longest Increasing Subsequence 最长递增子序列
Given an unsorted array of integers, find the length of longest increasing subsequence. Example: Inp ...
- Codeforces Round #530 (Div. 2) F 线段树 + 树形dp(自下往上)
https://codeforces.com/contest/1099/problem/F 题意 一颗n个节点的树上,每个点都有\(x[i]\)个饼干,然后在i节点上吃一个饼干的时间是\(t[i]\) ...
- 7.27 NOIP模拟测试9 随 (rand)+单(single)+题(problem)
T1 随 (rand) dp+矩阵优化+原根 看着题解懵了一晚上加一上午,最后还是看了DeepinC的博客才把暴力码出来,正解看得一知半解,循环矩阵也不太明白,先留坑吧.暴力里用二维矩阵快速幂会tle ...
- [LeetCode] 894. All Possible Full Binary Trees 所有可能的满二叉树
A full binary tree is a binary tree where each node has exactly 0 or 2 children. Return a list of al ...
- idea插件篇之java内存分析工具(JProfiler)
前言在运行java的时候有时候想测试云运行时占用内存情况,这时候就需要使用测试工具查看了.在eclipse里面有 Eclipse Memory Analyzer tool(MAT)插件可以测试,而在i ...