python之初识网络
一.
C/S架构:客户端(client)/服务端(server)架构
B/S架构:浏览器(browser) / 服务端(server)架构
软件cs架构: 浏览器,qq,微信等等
硬件cs架构:打印机
二.网络通信的整个流程

三.初识socket
# 服务器
#导入socket模块
import socket
#创建socket对象,创建了一个手机
server = socket.socket() #给程序设置一个ip地址和端口号,买了个手机卡
ip_port = ('192.168.12.21',8002) #绑定ip地址和端口,插卡
server.bind(ip_port) #监听ip地址和端口,简称开机
server.listen() #等待建立连接, conn是连接通道,addr是客户端的地址
conn,addr = server.accept() #服务端通过conn连接通道来收发消息,通过recv方法,recv里面的参数是字节(B),1024的意思1024B=1KB
from_client_msg = conn.recv(1024) print(from_client_msg.decode('utf-8')) #回复消息:通过send方法,参数必须是字节类型的,
conn.send('你也好呀'.encode('utf-8')) #关闭通道,关电话,通过close方法
conn.close()
#关闭socket对象,关机
server.close()
# 客户端
#导入socket
import socket
#创建一个socket对象
client = socket.socket()
#找到服务端的ip地址和端口
server_ip_port = ('192.168.12.21',8002)
#连接服务端的应用程序,通过connect方法,参数是服务端的ip地址和端口,打电话
client.connect(server_ip_port) #发消息,用的send方法,但是调用者是client的socket对象
client.send('你好'.encode('utf-8')) from_server_msg = client.recv(1024) print(from_server_msg.decode('utf-8'))
client.close()


python之初识网络的更多相关文章
- Python之路 - 网络编程初识
Python之路 - 网络编程初识 前言
- 孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块
孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...
- Python正则表达式初识(二)
前几天给大家分享了Python正则表达式初识(一),介绍了正则表达式中的三个特殊字符“^”.“.”和“*”,感兴趣的伙伴可以戳进去看看,今天小编继续给大家分享Python正则表达式相关特殊字符知识点. ...
- Python初学者之网络爬虫(二)
声明:本文内容和涉及到的代码仅限于个人学习,任何人不得作为商业用途.转载请附上此文章地址 本篇文章Python初学者之网络爬虫的继续,最新代码已提交到https://github.com/octans ...
- python高级之网络编程
python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说 ...
- 第六篇:python高级之网络编程
python高级之网络编程 python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及 ...
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
前面一直强调Python运用到网络爬虫方面很有效,这篇文章也是结合学习的Python视频知识及我研究生数据挖掘方向的知识.从而简介下Python是怎样爬去网络数据的,文章知识很easy ...
- python模块:网络协议和支持
python模块:网络协议和支持 webbrowser 调用浏览器显示html文件 webbrowser.open('map.html') [webbrowser - Convenient Web-b ...
- Python之路 - 网络编程之粘包
Python之路 - 网络编程之粘包 粘包
随机推荐
- Linux程序设计:进程通信
日期:忘了. 关键词:Linux程序设计:System-V:进程通信:共享内存:消息队列. 一.共享内存 1.1 基本知识 (待补充) 1.2 代码 一个基于share memory实现的 ...
- MySQL 线程池&连接池&长连接&短连接
线程池 简介 1.mysql每连接每线程,mysql都分配一个单独的线程,该线程处理客户端发来的所有命令 2.每个线程会占用一定的系统资源,线程数越多消耗的系统资源也越多 3.线程的创建和销毁有一定的 ...
- web自动化测试(java)---测试过程中遇到的错误合集
摸索测试,不管是安装.调测第一个用例都会遇到各种各样的问题,或是自己的问题或是程序本身设置问题 只有把所有问题记录下来,才对得起自己的经历 1.设置firefox的执行文件错误 Exception i ...
- Python内置类型(3)——比较
python有8种比较运算符:<.<=.>.>=.==.!=.is.is not,它们具有相同的优先级.它们具体的含义如下: 运算符 含义 < 小于 <= 小于或等 ...
- Hadoop生态系统之Yarn
Apache YARN(Yet Another Resource Negotiator) 是Hadoop的集群资源管理系统.YARN被引入Hadoop2最初是为了改善MapReduce的实现,但它具有 ...
- Java并发框架AbstractQueuedSynchronizer(AQS)
1.前言 本文介绍一下Java并发框架AQS,这是大神Doug Lea在JDK5的时候设计的一个抽象类,主要用于并发方面,功能强大.在新增的并发包中,很多工具类都能看到这个的影子,比如:CountDo ...
- JVM内存区域划分及垃圾回收
第一部分.闲扯+概述 近来在研读<深入理解java虚拟机>一书,读完之后做个小结,算是记录一下自己的学习所得,在成长的路上,只能死磕. 要理解JVM,就要先从其内存区域划分开始,知道其由几 ...
- 从逻辑思维中学习CSS,从宽高说起
从宽高说起 从宽高说起,我们知道一个物体的大小是由长.宽.高三个方向的尺寸决定的,但是你想啊电脑显示器是一个平面的,而不是3维,另因网页大部分情况下只需要使用到2维,所以为了简单在CSS中只有宽和高的 ...
- java使用java.lang.management监视和管理 Java 虚拟机
ClassLoadingMXBean 用于 Java 虚拟机的类加载系统的管理接口. CompilationMXBean 用于 Java 虚拟机的编译系统的管理接口. GarbageCollector ...
- 一篇迟到的gulp文章,代码合并压缩,less编译
前言 这篇文章本应该在去年17年写的,但因为种种原因没有写,其实主要是因为懒(捂脸).gulp出来的时间已经很早了,16年的时候还很流行,到17年就被webpack 碾压下去了,不过由于本人接触gul ...