zmq初次使用
文章目录 传统网络通信 zmq是什么 传统网络通信 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 对着这个图就很简单了: 服务端: 肯定要有一个socket然后绑定fd和ip,port,当然这时候需要转换成网络字节序,然后一堆操作,绑定完成以后就用这个fd去监听这个端口,开启listen,然后等待连接就是调用accept阻塞在这里等待连接,客户端连接后循环阻塞读写。 客户端: 先要填充好socket,然后调用connect连接服务端,也要带上ip和端口号,建立连接以后,用write和read读写,最后关闭套接字。 可以看到这种网络模型有很多问题要解决: 阻塞I/O:也就是说服务端或者客户端的读写都会阻塞,这样毫无疑问程序太死板。 多路复用:服务端要解决I/O多路复用,也就是可以处理多个客户端,比如epoll,select,poll等多路复用技术。 信号事件驱动I/O:也就是说当有I/O时采取通知机制,而不是轮询。 异步I/O:异步进行I/O操作,因为读写都会耗时,这不利于高并发的服务器开发,可以采取多线程。 而且在传统这种网络编程中,socket细节还比较复杂,并且需要自行解决分包组包,粘包,异常重连,消息缓存,消息加密,且TCP是一对一连接,就是一个socket只能有有一个连接。 那么接下来就介绍一个zmq的基本使用,它帮我们解决了这些问题。 zmq是什么