python29day
内容回顾
网络编程
- 概念
- B/S C/S架构
- B/S browser server
- C/S client 装客户端使用的 server远程服务器的
- osi七层协议
今日内容
tcp协议的编程
如何在连接内多和客户端说几句
能够接收多个客户端的请求
import socket sk=socket.socket()
sk.bind(('127.0.0.1',9000))
sk.listen() #就可以等人来连接了 while True:
conn,addr=sk.accept() #能和多个客户端握手了
print('conn:',conn)
while True:
send_msg=input('>>>')
conn.send(send_msg.encode('utf-8'))
if send_msg.upper()=='Q':
break
msg=conn.recv(1024).decode('utf-8')
if msg.upper() == 'Q':
break
print(msg)
conn.close() #挥手 断开连接 sk.close()
import socket sk=socket.socket()
sk.connect(('127.0.0.1',9000)) while True:
msg=sk.recv(1024)
msg2=msg.decode('utf-8')
if msg2.upper()=='Q':
break
print(msg,msg2)
send_msg=input('>>>')
sk.send(send_msg.encode('utf-8'))
if send_msg.upper()=='Q':
break sk.close()
udp协议的编程
import socket sk=socket.socket(type=socket.SOCK_DGRAM) #创建套接字
sk.bind(('127.0.0.1',9000)) #绑定端口
while True:
msg,addr=sk.recvfrom(1024) #被动等待
print(msg.decode('utf-8'))
msg=input('>>>')
sk.sendto(msg.encode('utf-8'),addr)
import socket sk=socket.socket(type=socket.SOCK_DGRAM) #创建套接字
server=(('127.0.0.1',9000)) while True:
msg = input('>>>')
if msg.upper()=='Q':
break
sk.sendto(msg.encode('utf-8'),server)
msg=sk.recv(1024).decode('utf-8')
if msg.upper()=='Q':
break
print(msg)
粘包现象
- 两条连续发送的数据黏在一起了
- 只出现在tcp协议中
- 因为tcp协议 多条消息之间没有边界,并且还有一大堆优化算法
- 发送端:两条消息都很短,发送的间隔时间也非常短
- 接收端:多条消息由于没有及时接收,而在接收方的缓存短 堆在一起导致的粘包现象
- 网络最大带宽限制 MTU=1500字节
- tcp发多大都行 因为会在中途拆分
struct模块
选课系统讲解I
代码总行数2856+174=3030行
python29day的更多相关文章
随机推荐
- 【LeetCode】349. Intersection of Two Arrays 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:Java解法,HashSet 方法二:Pyt ...
- 【LeetCode】551. Student Attendance Record I 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 正则表达式 统计 日期 题目地址:https://l ...
- 【LeetCode】64. Minimum Path Sum 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 如何改善win10录屏时声音降噪(消除杂音)
此文章是针对win10系统中安装Realtek声卡的麦克风出现杂音的设置办法 1. 打开win10的控制面板,找到"硬件和声音选项" 2. 进入"硬件和声音"选 ...
- 第二十四个知识点:描述一个二进制m组的滑动窗口指数算法
第二十四个知识点:描述一个二进制m组的滑动窗口指数算法 简单回顾一下我们知道的. 大量的密码学算法的大数是基于指数问题的安全性,例如RSA或者DH算法.因此,现代密码学需要大指数模幂算法的有效实现.我 ...
- Glossary Collection
目录 直接修饰用 间接强调用 (多为副词) 过渡用 特别的名词 动词 词组 各种介词 句子 摘要 引言 总结 正文 实验 直接修饰用 Word 含义 例句 近义词 nuanced adj. 微妙的:具 ...
- 基于Java swing+mysql+eclipse的【水电费管理系统】
本项目为前几天收费帮学妹做的一个项目,Java swing项目,在工作环境中基本使用不到,但是很多学校把这个当做编程入门的项目来做,故分享出本项目供初学者参考. CSDN9.9赞助下载: https: ...
- 编写Java程序,使用循环结构打印出九九乘法表
编写Java程序,使用循环结构打印出九九乘法表 效果如下: 实现代码: public class Multiplication99 { public static void main(String[] ...
- Java面向对象笔记 • 【第3章 继承与多态】
全部章节 >>>> 本章目录 3.1 包 3.1.1 自定义包 3.1.2 包的导入 3.1.3 包的访问权限 3.1.4 实践练习 3.2 继承 3.2.1 继承概述 3 ...
- Java面向对象笔记 • 【第7章 集合】
全部章节 >>>> 本章目录 7.1 集合概述 7.1.1 Java集合体系概述 7.1.2 实践练习 7.2 List集合 7.2.1 ArrayList实现类 7.2. ...