一、 微信支付
1.注册开发者帐号,通过开发中验证
2.注册应用通过审核,填写资料
3.接入SDK,通过商户验证
4.签署在线协议,售卖商品
二.第三方登录登录
1.用appid和appsecret获取token
2.用token拉取客户资料
三socket心跳包
- 流程:1.服务端监听端口.2.客户端发起请求.3.服务端返回信息建立连接.4.客户端断开链接.
- 包处理:为了传输的效率,一般都会限制包大小,导致客户端收到的包可能是粘包、多包和少包, 断包;如果是粘包就拆包,如果是断包就并包.一般结构是业务代码+包大小+内容,根据包大小来判断是粘包还是断包,最终进行拆包或并包,来形成一个完整的包.
四、K线图
- 用画布CGContextRef进行画点,连线,填充颜色
CGContext
Ref=getcurrentContext
BeginInPath
MoveToPoint
AddLineToPoint
ClosePath
SetFill
SetStroke
DrawPath
获取画布
做标记
设置起点
画线
结束标记
填充颜色
填充边框
绘制路径
2.锚点,起始坐标在坐上,需要转换到左下
UIBezierPath
五、OCR识别(opencv, Tesseract)
- 转为灰度图
- 利用阈值二值化
- 腐蚀,填充(腐蚀是让黑色点变大)
- 轮廊检测
- 取出内容区域
- 定位成功成功,去原图截取身份证号码区域,并转换成灰度图、进行二值化处理
- 将Mat转换成UIImage
五、截图拼接
1.先用CGImage画个图
2.然后进行等比缩放
3.将缩放后的图片放到画布上
不缩放可能会失真变形
UIGraphicsBeginImageContext(size);
[image drawInRect:rect];
UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return reSizeImage;
四、三次握手和四次挥手
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k)
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
1)客户端进程发出连接释放报文,并且停止发送数据。2)服务器收到连接释放报文,发出确认报文,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。3)客户端收到服务器的确认请求后4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,等待客户端的确认。5)客户端收到服务器的连接释放报文后,必须发出确认,此时,客户端就进入了TIME-WAIT(时间等待)状态。6)服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。服务器结束TCP连接的时间要比客户端早一些。
五、socket心跳包
自动重连机制
网友评论