# 客户端 # -*- coding: utf-8 -*- import socketserver import struct import json import subprocess class MyTcpHandler(socketserver.BaseRequestHandler): def handle(self): while True: try: cmd = self.request.recv(1024) if not cmd: break print(cmd.decode('ut…
1.线程的同步机制(重点)1.1 基本概念 当多个线程同时访问同一种共享资源时可能会造成数据的覆盖和不一致等问题,此时就需要对线程之间进行协调和通信,该方式就叫线程的同步机制. 如: 2003年左右 银行卡业务 存折 对应同一个账户 1.2 解决方案 由程序结果可知:当两个线程同时进行取款操作时,会导致最终的账户余额不正确. 引发原因:线程一还没有完成取款操作时,线程二就已经开始执行. 解决方案:等线程一执行完毕取款后再执行线程二,将线程的并发操作修改为串行操作即可 带来问题:多线程串行执行会造…
一.客户端/服务器架构(C/S架构)                                                即C/S架构,包括: 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务) 美好的愿望: 最常用的软件服务器是 Web 服务器.一台机器里放一些网页或 Web 应用程序,然后启动 服务.这样的服务器的任务就是接受客户的请求,把网页发给客户(如用户计算机上的浏览器),然 后等待下一个客户请求.这些服务启动后的目标就是“永远运行下去”.虽然它们不可能实现这样的…
tcp协议:流式协议(以数据流的形式通信传输).安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信) tcp协议在OSI七层协议中属于传输层,它上承用户层的数据收发,下启网络层.数据链路层.物理层.可以说很多安全数据的传输通信都是基于tcp协议进行的. 为了让tcp通信更加方便需要引入一个socket模块(将网络层.数据链路层.物理层封装的模块),我们只要调用模块中的相关接口就能实现传输层下面的繁琐操作. 简单的tcp协议通信模板:(需要一个服务端和一个客户端) 服务端: fr…
什么是 Socket Socket 是应用层与 TCP/IP 协议通信的中间软件抽象层,它是一组接口.在设计模式中,Socket 其实就是一个门面模式,它把复杂的 TCP/IP 协议族隐藏在 Socket 接口后面,对用户来说,一组简单的接口就是全部,让 Socket 去组织数据,以符合指定的协议. 所以,我们无需深入理解 TCP/UDP 协议,socket 已经为我们封装好了,我们只需要遵循 socket 的规定去编程,写出的程序自然就是遵循 TCP/UDP 标准的. 套接字的分类: 基于文件…
socket()模块函数用法 基于TCP协议的套接字程序 netstart -an | findstr 8080 #查看所有TCP和UDP协议的状态,用findstr进行过滤监听8080端口 服务端套接字函数 s.bind()  #绑定(主机,端口号)到套接字s.listen()  #开始TCP监听s.accept()  #被动接受TCP客户的连接,(阻塞式)等待连接的到来 客户端套接字函数 s.connect()  #主动初始化TCP服务器连接s.connect_ex()  #connect(…
1.基于tcp协议的编程模型(重中之重)1.1 编程模型服务器: (1)创建ServerSocket类型的对象,并提供端口号: (2)等待客户端的连接请求,调用accept()方法: (3)使用输入输出流进行通信: (4)关闭Socket并释放有关的资源: 客户端: (1)创建Socket类型的对象,并提供服务器的IP地址和端口号: (2)使用输入输出流进行通信: (3)关闭Socket并释放有关的资源: 1.2 相关类和方法的解析(1)ServerSocket类 java.net.Server…
1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将数据的传递从逻辑上划分为以下七层: 应用层.表示层.会话层.传输层.网络层.数据链路层.物理层. 在发送数据之前要按照上述七层协议从上到下一层一层进行加包处理,再发送出去; 在接收数据之后要按照上述七层协议从下到上一层一层进行拆包处理,再解析出来: 1.2 常用的协议(熟悉) http协议 - 超文…
一.异常处理 1.错误和异常 1.程序中难免出现错误,而错误分成两种 (1)语法错误(这种错误过不了Python解释器的语法检测,必须在程序执行前改正) #语法错误示范一 if #语法错误示范二 def test: pass #语法错误示范三 class Foo pass #语法错误示范四 print(haha (2)逻辑错误 #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num=input(">>: ") int(num) #无法完成计算 res1=1/0…
目录 一.什么是Scoket 二.套接字发展史及分类 2.1 基于文件类型的套接字家族 2.2 基于网络类型的套接字家族 三.套接字工作流程 3.1 服务端套接字函数 3.2 客户端套接字函数 3.3 公共用途的套接字函数 3.4 面向锁的套接字方法 3.5 面向文件的套接字的函数 四.基于TCP协议的套接字编程(简单) 4.1 服务端 4.2 客户端 五.基于TCP协议的套接字编程(循环) 5.1 服务端 5.2 客户端1 5.3 客户端2 六.地址占用问题 6.1 方法一 6.2 方法二(L…