会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
py小强
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
::
公告
2019年8月4日
第八章 socket网络编程(12):文件传输功能-面向对象优化
摘要: 这篇我们把之前的代码,用面向对象的形式进行一下优化。 优化的思想: + 要使用的参数全在类的内部首先定义,或者从配置文件导入 + 所有的动作都用类的方法封装(首先需要细化这个功能都有哪些步骤,然后把步骤写入方法,可以直接调用方法作为接口) 在函数优化的基础上更容易修改 server.py clien
阅读全文
posted @ 2019-08-04 17:54 py小强
阅读(195)
评论(0)
推荐(0)
第八章 socket网络编程(13):UDP协议套接字实现
摘要: 简单的实现UDP协议: server.py client.py
阅读全文
posted @ 2019-08-04 17:54 py小强
阅读(105)
评论(0)
推荐(0)
第八章 socket网络编程(11):文件传输功能-用函数优化代码
摘要: 我们把功能细化,然后用函数包装一下,这样可读性好而且加入新功能的时候也比较容易。 + 实现步骤 + 先把除了import和环境变量部分全部装到run()函数中,并且在最后加入if __name__ == '__main__' 部分 + 看run()里面有没有实现某个功能的部分,在run()上面定义该
阅读全文
posted @ 2019-08-04 17:53 py小强
阅读(175)
评论(0)
推荐(0)
第八章 socket网络编程(10):文件传输功能的实现
摘要: 文件传输功能(下载) 这个可以用上一篇的最终版的远程执行命令代码稍作修改就可以实现。\ 原理是一样的 下面代码借用之前的ssh代码部分: 从服务器下载文件: server.py client.py python import socket import struct import json impo
阅读全文
posted @ 2019-08-04 17:52 py小强
阅读(216)
评论(0)
推荐(0)
第八章 socket网络编程(9):最终版本的ssh模拟程序(标准cs构架模板)
摘要: + 之前我们实现了基本功能,但是有一些问题 + 报头里只包含了数据长度,对文件的描述应该还包含其他信息 + struct模块pack的任何模式,报头长度是有极限的(l模式也就只有8bytes) 这个版本是一个很标准的套接字CS服务的模板,需要认真对待。 server.py client.py pyt
阅读全文
posted @ 2019-08-04 17:51 py小强
阅读(109)
评论(0)
推荐(0)
第八章 socket网络编程(8):粘包现象以及解决方法(代码完善)
摘要: 粘包现象 .recv(1024)坑:当传送来的数据超过1024bytes的时候,因为recv只能一次接受1024byte,传输管道就会积压数据\ → 下次recv会继续接收积压的数据\ → 这回导致本次send的处理结果可能返回的是上次的结果内容的一部分, 粘包现象:TCP协议是流数据协议(传送的是
阅读全文
posted @ 2019-08-04 17:50 py小强
阅读(316)
评论(0)
推荐(0)
第八章 socket网络编程(6):加上连接循环(代码完善)
摘要: 继续上一篇,我们来继续完善程序 到现在为止,我们停掉客户端了,服务端也会一起结束。\ 但是考虑一下,这并算不上服务端,因为只能服务一个客户端\ 所以我们需要能接受多个客户端的访问(暂时我们不研究并发编程,就让我们先能一个一个处理) server.py client.py
阅读全文
posted @ 2019-08-04 17:48 py小强
阅读(117)
评论(0)
推荐(0)
第八章 socket网络编程(7):模拟ssh远程执行命令
摘要: 接下来我们用之前的知识,模拟一个远程执行命令的小程序 server.py client.py
阅读全文
posted @ 2019-08-04 17:48 py小强
阅读(105)
评论(0)
推荐(0)
第八章 socket网络编程(5):客户端与服务端代码bug修复(代码完善)
摘要: 到上一篇位置我们写的代码虽然可以执行,但是还有很多潜在的bug + 各种问题的解决 + 端口重用:有时候服务端关掉了依然端口被占用,原因是OS回收端口需要时间,这时候有2中解决方法: + .setsockopt方法实现端口重用 + Linux OS的情况下:修改Linux的系统设置 + 客户端发送空
阅读全文
posted @ 2019-08-04 17:47 py小强
阅读(199)
评论(0)
推荐(0)
第八章 socket网络编程(4):在简单套接字基础上加上通信循环(代码完善)
摘要: 在上一篇的通信例子的基础上,我们加上一个通信循环 server.py client.py
阅读全文
posted @ 2019-08-04 17:45 py小强
阅读(103)
评论(0)
推荐(0)
第八章 socket网络编程(3):什么是socket(套接字)
摘要: TCP/UDP协议是非常复杂的,我们编程的时候不可能都深入了解,所以这时候就有大牛们为网络编程的程序猿准备了封装好的模块,\ 程序猿们只要调用接口就可以实现网络通信,不需要深入了解协议的原理。 Socket抽象层 + 在传输层和应用层之间:作用是让应用层只要跟Socket抽象层交互就可以了 + 把传
阅读全文
posted @ 2019-08-04 17:44 py小强
阅读(132)
评论(0)
推荐(0)
第八章 socket网络编程(2):传输层详解(TCP / UDP)
摘要: 8.2 传输层详解 TCP/UDP 作为软件程序猿,我们只能决定应用层的协议用什么。其他层都是固定的 TCP + TCP协议又称Stream协议(流式协议):像水流一样传递,所以需要一个双向管道 + 建立连接(挖管道):(3次握手) + 1次握手:客户端向服务端发一个请求(SYN=1,Seq=x):
阅读全文
posted @ 2019-08-04 17:43 py小强
阅读(140)
评论(0)
推荐(0)
第八章 socket网络编程(1):网络协议基础
摘要: 网络是什么: + 互联网协议:为了互联网通信方式统一而制定的协议,只要程序遵循这个标准组织数据,就可以和任何对象通信 + 互联网协议(分法不同可以分拆成4,5,7层): + OSI7层协议: 1. 应用层 2. 表示层 3. 会话层 4. 传输层 5. 网络层 6. 数据链路层 7. 物理层 + 4
阅读全文
posted @ 2019-08-04 17:41 py小强
阅读(121)
评论(0)
推荐(0)