美文网首页
python工作笔记——新一代主机调试文件学习

python工作笔记——新一代主机调试文件学习

作者: 龙鹰图腾223 | 来源:发表于2020-07-09 14:02 被阅读0次

    zmq和socket的区别

    阅读了 ZMQ 的 Guide 文档后,我的理解是,这是个类似于 Socket 的一系列接口,他跟 Socket 的区别是:普通的 socket 是端到端的(1:1的关系),而 ZMQ 却是可以N:M 的关系,人们对 BSD 套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而 ZMQ 屏蔽了这些细节,让你的网络编程更为简单。ZMQ 用于 node 与 node 间的通信,node 可以是主机或者是进程。


    程序解释:

    https://www.cnblogs.com/silence-cho/p/12657234.html

    context = zmq.Context()   #创建上下文

    socket = context.socket(zmq.PUB)   #创建Response服务端socket

    socket.bind("tcp://*:5555")    #socket绑定,*表示本机ip,端口号为5555,采用tcp协议通信

    #  将address指向的sockaddr结构体中描述的一些属性(IP地址、端口号、地址簇)与socket套接字绑定,也叫给套接字命名。调用bind()后,就为socket套接字关联了一个相应的地址与端口号,即发送到地址值该端口的数据可通过socket读取和使用。当然也可通过该socket发送数据到指定目的。

    对于Server,bind()是必须要做的事情,服务器启动时需要绑定指定的端口来提供服务(以便于客户向指定的端口发送请求),对于服务器socket绑定地址,一般而言将IP地址赋值为INADDR_ANY(该宏值为0),即无论发送到系统中的哪个IP地址(当服务器有多张网卡时会有多个IP地址)的请求都采用该socket来处理,而无需指定固定IP。

    对于Client,一般而言无需主动调用bind(),一切由操作系统来完成。


    numpy.frombuffer

    numpy.frombuffer则是将一个bytes的缓冲区解释为一个一维数组,因此这个一维数组既没有自己的内存空间,也不是string类型,而bytes是不可改变的改变类型,因此内存空间也是不可写的,所以上面三个条件均不满足,WRITEABLE就为False了。

    那么假如用numpy.frombuffer转换的不是bytes这种不可改变类型的数据,而是如float,list这种可改变类型的数据,是不是WRITEABLE就可以为True了呢?确实如此。


    lock

    【1】https://blog.csdn.net/JackLiu16/article/details/81267176    python threading 线程锁lock = threading.Lock() lock.acquire() lock.release()    


    multiprocess模块

    https://www.cnblogs.com/haitaoli/p/9837697.html

    manager = multiprocessing.Manager()

    多进程的变量Manager.dict()在赋值的时候只能接收一层赋值


    numpy.ndarray.tobytes

    ndarray.tobytes(order='C')

    构造包含数组中原始数据字节的Python字节。

    构造Python字节,显示数据内存的原始内容的副本。bytes对象可以“C”或“Fortran”或“Any”顺序生成(默认为“C”顺序)。“Any”order表示C顺序,除非设置了数组中的F_continuous标志,在这种情况下,它表示“Fortran”顺序。


    python基础之np.vstack()&np.hstack()

    https://www.jianshu.com/p/608140bec2f5

    相关文章

      网友评论

          本文标题:python工作笔记——新一代主机调试文件学习

          本文链接:https://www.haomeiwen.com/subject/dehxqktx.html