首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一步步教你制作移动式银行卡信息读取器

背景:半年前,我从网上看到一个视频,讲的大概是一个人站在了一个人的旁边,待了几秒,然后就知道了那个人的银行卡信息了,而且不仅是银行卡信息,甚至持卡人的姓名,身份证号都有。我看完之后,当时就惊呆了。...我们写代码前大致是要先找到NFC读卡器说明文档和银行卡相关规范,了解其工作过程。...NFC读卡器发送请求数据给银行卡,然后银行卡响应数据,发送和响应的这些数据都是十六进制表示的,银行卡规范中均有详细说明。知道了命令之后,就是测试。...库: sudo apt-get install pcscd git python3-setuptools swig gcc libpcsclite-dev python3-dev sudo echo "...程序及资料: NFC资料代码 后记:其实上面的演示,你只要有个NFC读卡器就行,这个是最重要的,然后我的python程序是window10上写的,之后放到了树莓派中。

3.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

python fork()多进程

相比之下,Python的os.fork()是唯一返回两次的函数,任何返回两次的函数,某种意义上,都可以调用os.fork()来实现。调用fork()之后,就同时存在两个正在运行程序的拷贝。...子进程终止后,必须调用wait()函数,否则系统系统资源会被大量的zombie进程消耗掉,最终会使服务器不可用。 操作系统可以非常容易地完成这个工作。...三、fork()性能 由于fork()函数每次客户端连接的时候必须在整个服务器中拷贝,所以或许有人会认为它是一个很慢的方法。事实上,fork()的性能对于几乎所有具有高负载的系统来说是可忽略的。...子进程会在fork()之后立刻终止,父进程sleep,能看出子进程出现了zombie,可以从第三列中的Z和输出最后的看出来。一旦父进程终止了,将可以确定两个进程都不存在了。...如果系统不能执行fork,os.fork()函数可以产生异常。为了防止服务器当机,必须处理这个异常。

2K20

python守护进程

假如写一段服务端程序,如果ctrl+c退出或者关闭终端,那么服务端程序就会退出,于是就想着让这个程序成为守护进程,像httpd一样,一直在后端运行,不会受终端影响。...bin/env python #coding=utf8 def createDaemon(): import os, sys, time #产生子进程,而后父进程退出 try: pid = os.fork..."/") #创建新的会话,子进程成为会话的首进程 os.setsid() #修改工作目录的umask os.umask(0)   #创建孙子进程,而后子进程退出 try: pid = os.fork...time.ctime()) fd.flush() fd.close() if __name__=='__main__': createDaemon() fork子进程,父进程退出 通常,我们执行服务端程序的时候都会通过终端连接到服务器...2.修改子进程的工作目录 子进程创建的时候会继承父进程的工作目录,如果执行的程序是U盘里面,就会导致U盘不能卸载。

1K20

python 守护进程(daemon)

stdout='/dev/null', stderr='/dev/null'):     # 重定向标准文件描述符(默认情况下定向到/dev/null)       try:         pid = os.fork...()         # 父进程(会话组头领进程)退出,这意味着一个非会话组头领进程永远不能重新获得控制终端。           ...# 执行第二次fork       try:         pid = os.fork()         if pid > 0:             sys.exit(0)  # 第二个父进程退出...1、fork子进程,父进程退出 通常,我们执行服务端程序的时候都会通过终端连接到服务器,成功连接后会加载shell环境,终端盒shell都是进程,shell进程是终端进程的子进程,通过ps命令可以很容易的查看到...2.修改子进程的工作目录 子进程创建的时候会继承父进程的工作目录,如果执行的程序是U盘里面,就会导致U盘不能卸载。

1K30

Python守护进程daemon实现

而对于init进程,它是一个由内核引导装入时启动的用户层次的命令,属于用户级守护进程,主要负责启动各运行层次特定系统服务。这些服务通常是它们自己拥有的守护进程的帮助下实现的。...7、忽略SIGCHLD信号    这一步并非必须的,只对需要创建子进程的守护进程才有必要,很多服务器守护进程设计成通过派生子进程来处理客户端的请求,如果父进程不对SIGCHLD信号进行处理的话,子进程终止后变成僵尸进程...============' #调用daemon_init函数前是可以使用print到标准输出的,调用之后就要用把提示信息通过stdout发送到日志系统中了 daemon_init('/dev/...() #父进程(会话组头领进程)退出,这意味着一个非会话组头领进程永远不能重新获得控制终端。...python的输出有缓冲,导致ser_log.out并不能够马上看到输出。

7.1K30

小说python中的孤儿进程

然而,实际应用中,孤儿进程虽然不会给系统造成直接性的危害,但更多时候会对业务造成一些影响,如当子进程为一个基于tcp的socket服务时,会造成主进程再次启动时无法启动,端口被占用。...对于一些有进程监控的服务来说,可能会造成业务主服务无法重启,或是进程不可控。 鉴于这些情况下,很多时候是不希望产生孤儿进程的,子进程应随父进程结束而结束。...为什么 豆瓣工程师给出了解决办法,不能只拿来用用,得问几个为什么?通过什么实现的?为什么要这么做呢? 下面具体分析下实现方法: 1....() if pid == 0: # child process os.setpgrp() pid = os.fork() if pid...子进程exit_when_parent_or_child_dies方法中循环等待父进程状态,当PPID为1时,说明父进程已退出,通过killpg()将进程组中的所有进程(孙孙进程)杀死,然后自己退出。

1.7K10

2.并发编程~先导篇(下)

为什么要realase发布而不用debug直接部署?这背后的性能相差几何?...小潘同学最爱打扫 postion_index:25 postion_index:0 其他方法可以参考:这篇文章(Python3很多都和Python2不太相同,辩证去看吧) 注意一点: 通过MMap内存映射之后...、忽略和阻塞的(这个是系统预留的,如果预留都没有可以想象肯定木马横向) PS:信号的优先级一般都是比较高的,往往进程收到信号后都会停下手上的事情先处理信号(死循环也一样歇菜) 来看一个例子:(处理singint...我这边只是一台老电脑,要是真服务器下性能相差可能让你吓一跳 现在知道为什么要realase发布而不用debug直接部署了吧(线上项目非必要情况,一般都会删除所有日记输出的) 定时器setitimer(...sys.stdout.fileno()) with open("err.log", "a+") as f: os.dup2(f.fileno(), sys.stderr.fileno()) 之后

1.3K40

Python 多进程

我们知道进程是python中最小的资源分配单元,也就是进程中间的数据,内存是不共享的,每启动一个进程,都要独立分配资源和拷贝访问的数据,所以进程的启动和销毁的代价是比较大了,所以实际中使用多进程,要根据服务器的配置来设定...,这是多进程使用中与多线程最明显的区别。...结束测试 对Pool对象调用join()方法会等待所有子进程执行完毕,调用join()之前必须先调用close(),调用close()之后不能继续添加新的Process了。...适用系统:unix forkserver 当程序启动并选择forkserver的启动方法时,将启动服务器进程。...从那时起,每当需要一个新进程时,父进程就会连接到服务器,并请求它fork一个新进程。 fork server进程是单线程的,所以使用os.fork()是安全的。

34341

PowerJob 的自实现高可用方案,妙妙妙!

首先,为什么不用注册中心呢? 要做到分布式环境下的高可用,肯定是需要服务注册、服务发现这样的概念的。没有外部注册中心,说白了就是自己去实现了一套类似的机制。那为什么要怎么做呢?...server 既然需要持有某一个分组下完整的集群信息,那么可以顺其自然的想到,能不能让某一个分组的所有 worker 都连接到某一台 server 呢?...重?这一串词汇,把我拉回了刚刚设计的方案之中,然后给我当头一棒。...就像前面说的那样,worker 因为没办法获取 server 的准确状态,所以不能由 worker 来决定连接哪一台 server。因此,worker 需要做的,只是服务发现。...我们的目标是某个分组下所有的 worker 都连接到同一台 server,因此,即便产生那种误打误撞篡位的情况,服务发现机制的加持下,整个集群最终还是会连接到同一台 server,完美实现我们的需求。

1.9K30

Python实现守护进程 转

他们常常在系统引导装入时启动,系统关闭时终止。unix系统有很多守护进程,大多数服务器都是用守护进程实现的,例如inetd守护进程。...创建子-孙进程,使sid不等pid 关闭打开的文件描述符 通常就关闭STDIN、STDOUT和STDERR 改变当前工作目录 防止占用别的路径的working dir的fd,导致一些block不能...第一次fork,setsid之后,子进程成为session leader,进程可以打开终端;第二次fork产生的进程,不再是session leader,进程则无法打开终端。...') # First fork (detaches from parent) try: if os.fork() > 0:...也可以使用 Supervisor 管理进程,具体可看 Supervisor安装与配置 参考 tzuryby/daemon.py python2实现的通用的python daemon类 12.14 Unix

1.2K20

面试官邪魅一笑:你猜一个 TCP 连接能发多少 HTTP 请求 ?

一道经典的面试题是从 URL 浏览器被被输入到页面展现的过程中发生了什么,大多数回答都是说请求响应之后 DOM 怎么被构建,被绘制出来。...为什么有的时候刷新页面不需要重新建立 SSL 连接? 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?...至于标准为什么这么设定,我们可以大概推测一个原因:由于 HTTP/1.1 是个文本协议,同时返回的内容也并不能区分对应于哪个发送的请求,所以顺序必须维持一致。...主要有下面两点: 维持和服务器已经建立的 TCP 连接,同一接上顺序处理多个请求。 和服务器建立多个 TCP 连接。 第四个问题:为什么有的时候刷新页面不需要重新建立 SSL 连接?...如果图片都是 HTTPS 连接并且同一个域名下,那么浏览器 SSL 握手之后会和服务器商量能不能用 HTTP2,如果能的话就使用 Multiplexing 功能在这个连接上进行多路传输。

77030

面试官问:一个 TCP 连接可以发多少个 HTTP 请求?我懵了!

一道经典的面试题是从 URL 浏览器被被输入到页面展现的过程中发生了什么,大多数回答都是说请求响应之后 DOM 怎么被构建,被绘制出来。...4、为什么有的时候刷新页面不需要重新建立 SSL 连接? 5、浏览器对同一 Host 建立 TCP 连接到数量有没有限制?...至于标准为什么这么设定,我们可以大概推测一个原因:由于 HTTP/1.1 是个文本协议,同时返回的内容也并不能区分对应于哪个发送的请求,所以顺序必须维持一致。...主要有下面两点: 1、维持和服务器已经建立的 TCP 连接,同一接上顺序处理多个请求。 2、和服务器建立多个 TCP 连接。 第四个问题: 为什么有的时候刷新页面不需要重新建立 SSL 连接?...如果图片都是 HTTPS 连接并且同一个域名下,那么浏览器 SSL 握手之后会和服务器商量能不能用 HTTP2,如果能的话就使用 Multiplexing 功能在这个连接上进行多路传输。

52620

面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

为什么有的时候刷新页面不需要重新建立 SSL 连接? 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?...至于标准为什么这么设定,我们可以大概推测一个原因:由于 HTTP/1.1 是个文本协议,同时返回的内容也并不能区分对应于哪个发送的请求,所以顺序必须维持一致。...Head-of-line Blocking 连接头阻塞:在建立起一个 TCP 连接之后,假设客户端在这个连接连续向服务器发送了几个请求。...主要有下面两点: 维持和服务器已经建立的 TCP 连接,同一接上顺序处理多个请求。 和服务器建立多个 TCP 连接。 第四个问题 为什么有的时候刷新页面不需要重新建立 SSL 连接?...如果图片都是 HTTPS 连接并且同一个域名下,那么浏览器 SSL 握手之后会和服务器商量能不能用 HTTP2,如果能的话就使用 Multiplexing 功能在这个连接上进行多路传输。

75850

面试官问:一个 TCP 连接可以发多少个 HTTP 请求?我懵了!

为什么有的时候刷新页面不需要重新建立 SSL 连接? 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?...至于标准为什么这么设定,我们可以大概推测一个原因: 由于 HTTP/1.1 是个文本协议,同时返回的内容也并不能区分对应于哪个发送的请求,所以顺序必须维持一致。...Head-of-line Blocking 连接头阻塞:在建立起一个 TCP 连接之后,假设客户端在这个连接连续向服务器发送了几个请求,按照标准,服务器应该按照收到请求的顺序返回结果 假设服务处理首个请求时花费了大量时间...主要有下面两点: 维持和服务器已经建立的 TCP 连接,同一接上顺序处理多个请求。 和服务器建立多个 TCP 连接。 第四个问题 为什么有的时候刷新页面不需要重新建立 SSL 连接?...如果图片都是 HTTPS 连接并且同一个域名下,那么浏览器 SSL 握手之后会和服务器商量能不能用 HTTP2 如果能的话就使用 Multiplexing 功能在这个连接上进行多路传输。

3K20

面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

为什么有的时候刷新页面不需要重新建立 SSL 连接? 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?...至于标准为什么这么设定,我们可以大概推测一个原因:由于 HTTP/1.1 是个文本协议,同时返回的内容也并不能区分对应于哪个发送的请求,所以顺序必须维持一致。...Head-of-line Blocking 连接头阻塞:在建立起一个 TCP 连接之后,假设客户端在这个连接连续向服务器发送了几个请求。...主要有下面两点: 维持和服务器已经建立的 TCP 连接,同一接上顺序处理多个请求。 和服务器建立多个 TCP 连接。 第四个问题 为什么有的时候刷新页面不需要重新建立 SSL 连接?...如果图片都是 HTTPS 连接并且同一个域名下,那么浏览器 SSL 握手之后会和服务器商量能不能用 HTTP2,如果能的话就使用 Multiplexing 功能在这个连接上进行多路传输。

35810

一个 TCP 连接可以发多少个 HTTP 请求?

为什么有的时候刷新页面不需要重新建立 SSL 连接? 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?...至于标准为什么这么设定,我们可以大概推测一个原因:由于 HTTP/1.1 是个文本协议,同时返回的内容也并不能区分对应于哪个发送的请求,所以顺序必须维持一致。...Head-of-line Blocking 连接头阻塞:在建立起一个 TCP 连接之后,假设客户端在这个连接连续向服务器发送了几个请求。...主要有下面两点: 维持和服务器已经建立的 TCP 连接,同一接上顺序处理多个请求。 和服务器建立多个 TCP 连接。 4.第四个问题 为什么有的时候刷新页面不需要重新建立 SSL 连接?...如果图片都是 HTTPS 连接并且同一个域名下,那么浏览器 SSL 握手之后会和服务器商量能不能用 HTTP2,如果能的话就使用 Multiplexing 功能在这个连接上进行多路传输。

1.3K10

一个 TCP 连接可以发多少个 HTTP 请求?(转载)

为什么有的时候刷新页面不需要重新建立 SSL 连接? 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?...至于标准为什么这么设定,我们可以大概推测一个原因:由于 HTTP/1.1 是个文本协议,同时返回的内容也并不能区分对应于哪个发送的请求,所以顺序必须维持一致。...Head-of-line Blocking 连接头阻塞:在建立起一个 TCP 连接之后,假设客户端在这个连接连续向服务器发送了几个请求。...主要有下面两点: 维持和服务器已经建立的 TCP 连接,同一接上顺序处理多个请求。 和服务器建立多个 TCP 连接。 第四个问题 为什么有的时候刷新页面不需要重新建立 SSL 连接?...如果图片都是 HTTPS 连接并且同一个域名下,那么浏览器 SSL 握手之后会和服务器商量能不能用 HTTP2,如果能的话就使用 Multiplexing 功能在这个连接上进行多路传输。

58210

面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

为什么有的时候刷新页面不需要重新建立 SSL 连接? 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?...至于标准为什么这么设定,我们可以大概推测一个原因:由于 HTTP/1.1 是个文本协议,同时返回的内容也并不能区分对应于哪个发送的请求,所以顺序必须维持一致。...Head-of-line Blocking 连接头阻塞:在建立起一个 TCP 连接之后,假设客户端在这个连接连续向服务器发送了几个请求。...主要有下面两点: 维持和服务器已经建立的 TCP 连接,同一接上顺序处理多个请求。 和服务器建立多个 TCP 连接。 第四个问题 为什么有的时候刷新页面不需要重新建立 SSL 连接?...如果图片都是 HTTPS 连接并且同一个域名下,那么浏览器 SSL 握手之后会和服务器商量能不能用 HTTP2,如果能的话就使用 Multiplexing 功能在这个连接上进行多路传输。

48910
领券