Python全栈-网络编程基础
一、C/S架构
二、OSI七层模型
.png)


三、socke是什么狗屁?
四、socket的种类
五、socket编程

.png)
# 服务器端
import socket # 实例化一个socket对象,并指定网络层协议、传输层协议
socket_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定IP、端口号
socket_server.bind(('127.0.0.1',8080),)
# 同一时间内能够接收的请求
socket_server.listen(5)
# 等待连接
connect,client_address = socket_server.accept()
# 设置接收消息,最大限制为1024
receive_mag = connect.recv(1024)
print('收到客户端的消息:%s' % receive_mag.decode('UTF-8'))
# 发送数据
connect.send(receive_mag.upper()) # 关闭连接
connect.close() # 客户端
import socket socket_client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 连接服务端,指定IP、端口号
socket_client.connect(('127.0.0.1',8080))
# 向服务端发消息
socket_client.send('Hello,I am client!'.encode('utf-8'))
data = socket_client.recv(1024)
print('接收到服务器的消息:%s' % data.decode('utf-8')) socket_client.close()
3.基于TCP的套接字连接循环和通信循环
# 服务器端
import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
phone.bind(('127.0.0.1',8080))
phone.listen(5)
while True: # 连接循环
connect,client_address = phone.accept()
print('客户端:',client_address)
while True: # 通信循环
try:
msg = connect.recv(1024)
print('客户端消息:',msg)
connect.send(msg+b'from server')
except ConnectionResetError:
break
connect.close()
phone.close() # 客户端
import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
phone.connect(('127.0.0.1',8080)) # 拨电话,地址为服务端的ip和端口
while True:
msg = input('>>>).strip()
phone.send(msg.encode('utf-8')) # 发消息
data = phone.recv(1024) #收消息
print(data.decode('utf-8'))
phone.close()
4.基于UDP的套接字实现
1)UDP原理
参考:https://baike.baidu.com/item/UDP/571511
2)套接字实现
# 服务器端
import socket # SOCK_DGRAM 数据包协议
server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server.bind(('127.0.0.1',8080),) while True:
data,addr = server.recvfrom(1024)
print(data.decode('utf-8'),addr)
server.sendto(data.upper(),addr)
# 客户端
import socket # SOCK_DGRAM 数据包协议
client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) while True:
msg = input('>>>').strip()
if len(msg) == 0:continue
client.sendto(msg.encode('utf-8'),('127.0.0.1',8080))
data,addr = client.recvfrom(1024)
print(data.decode('utf-8'),addr)
Python全栈-网络编程基础的更多相关文章
- Python全栈-网络编程-TCP粘包
一.什么是TCP粘包 C/S架构下,接收方不知道每个消息的发送间隙.也不知道每次应该提取多少个字节的数据,与此同时,TCP是面向连接的,面向流的,收发两端都要有,因此发送端为了将多个发往接收端的数据包 ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- python学习之网络编程基础
引入场景:客户与银行关系 银行职员负责给客户提供取钱服务,客户通过账户密码跟银行职员建立合作关系.此时银行职员就可以作为服务器,当用户A取完钱后他需要等待下一个用户的接入,用户的账号密码就是建立合作关 ...
- Python全栈开发-Day1-Python基础1
目录 Python介绍 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语句 表达式f ...
- Python全栈-day4-语法基础2
一.字符串 1.字符串基础 1)作用:用于描述姓名.性别.地址等信息 2)定义方式:单引号或者双引号以及三引号内添加字符 注:day3中介绍 name = 'zhang' user_name = &q ...
- Python全栈开发-Day3-Python基础3
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3.递归 4.函数式编程介绍 5.高阶函数 1.函数基本语法及特性 三种编程范式: 1.面向过程:过程——> def 2.面向对象:类— ...
随机推荐
- [development][dpdk][pktgen] 网卡收发包性能测试
一: 多队列及中断信息收集 [root@T185 ~]# ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: RX Mini ...
- 转: jquery中ajax回调函数使用this
原文地址:jquery中ajax回调函数使用this 写ajax请求的时候success中代码老是不能正常执行,找了半天原因.代码如下 $.ajax({type: 'GET', url: " ...
- 查找->动态查找表->平衡二叉树
文字描述 平衡二叉树(Balanced Binary Tree或Height-Balanced Tree) 因为是俄罗斯数学家G.M.Adel’son-Vel’skii和E.M.Landis在1962 ...
- json 脚本入库的几种方法
json 脚本入库的几种方法,见代码: #-*- encoding: utf-8 -*- #第一种mongodb入库 # from pymongo import * # import json # c ...
- es的timeout机制
GET /_search?timeout=10ms默认情况下,es的timeout机制是关闭的.比如,如果你的搜索特别慢,每个shard都要花好几分钟才能查询出来所有的数据,那么你的搜索请求也会等待好 ...
- ASCLL码中的一些小知识
其次要记住asill值中 65是A 97是a A与a之间相隔32,用int转换后再用char转换回来. char b = s.charAt(i);为字符串转换成一个一个的.
- gitlab数据库
event表中action对应操作: 1 - 新建项目 5 - push 8 - 在某项目中赋予某人权限 9 - 在某项目中取消某人权限
- [phomeflashpic]怎样调用帝国CMS图片幻灯效果
今天改网站时试着用帝国cms的[phomeflashpic]标签调用图片作为首页幻灯片,默认是[phomeflashpic]0,3,300,235,0,0,13,3[/phomeflashpic],其 ...
- 【环境配置】配置jdk
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/manoel/article/details/37736569 1. 下载jdk的安装文件 http: ...
- 报错解决——Failed to load resource: the server responded with a status of 404 (Not Found) favicon.ico文件找不到
Django项目开发完成后在本地运行没问题,但在推到服务器上后出现报错Failed to load resource: the server responded with a status of 40 ...