基于FIFO命名管道进行双工通信的方法及相关设备技术

技术编号:19487144 阅读:25 留言:0更新日期:2018-11-17 11:35
本发明专利技术实施例公开了一种基于FIFO命名管道进行双工通信的方法及相关设备,用于解决现有技术中在Linux系统中利用FIFO管道只能实现进程间的半双工通信的问题。本发明专利技术实施例方法包括:FIFO服务器接收FIFO客户端发送的连接建立请求消息,连接建立请求消息包括FIFO客户端的第一本地命名管道的标识信息;FIFO服务器根据连接建立请求消息创建与FIFO客户端对应的FIFO会话;响应于连接建立请求消息,FIFO服务器通过FIFO会话的第二远程命名管道向FIFO客户端发送连接建立请求响应消息,连接建立请求响应消息包括第二本地命名管道的标识信息,以使得FIFO客户端通过第一远程命名管道向FIFO会话发送信息,第一远程命名管道为在FIFO客户端中与第二本地命名管道对应的管道。

【技术实现步骤摘要】
基于FIFO命名管道进行双工通信的方法及相关设备
本专利技术涉及信息处理
,尤其涉及一种基于FIFO命名管道进行双工通信的方法及相关设备。
技术介绍
在Linux系统中,可以利用先入先出队列(firstinfirstout,FIFO)管道实现进程间的数据通信,然而,现有技术中,FIFO只能进行单向的数据传递,即只能实现半双工通信,所谓半双工通信,可以理解为同一时刻只能发送或者接收数据,而不能同时进行发送和接收。因此,如何利用FIFO使得进行数据通信的两端,能够进行全双工通信,即能够同时进行数据的发送与接收,成为一个亟待解决的问题。
技术实现思路
本专利技术实施例提供了一种基于FIFO命名管道进行双工通信的方法及相关设备,用于解决现有技术中在Linux系统中利用FIFO管道只能实现进程间的半双工通信的问题。本专利技术实施例的第一方面提供了一种基于FIFO命名管道进行双工通信的方法,所述方法应用于Linux系统,包括:FIFO服务器接收FIFO客户端发送的连接建立请求消息,所述连接建立请求消息包括所述FIFO客户端的第一本地命名管道的标识信息,所述第一本地命名管道用于所述FIFO客户端接收信息;所述FIFO服务器根据所述连接建立请求消息创建与所述FIFO客户端对应的FIFO会话,所述FIFO会话包括第二本地命名管道和第二远程命名管道,所述第二本地命名管道用于所述FIFO会话接收信息,所述第二远程命名管道为在所述FIFO会话中与所述第一本地命名管道对应的管道,所述第二远程命名管道用于向所述FIFO客户端发送信息;响应于所述连接建立请求消息,所述FIFO服务器通过所述FIFO会话的第二远程命名管道向所述FIFO客户端发送连接建立请求响应消息,所述连接建立请求响应消息包括所述第二本地命名管道的标识信息,以使得所述FIFO客户端通过第一远程命名管道向所述FIFO会话发送信息,所述第一远程命名管道为在所述FIFO客户端中与所述第二本地命名管道对应的管道。在一种可能的实施例中,所述FIFO服务器接收FIFO客户端发送的连接建立请求消息之前,所述方法还包括:所述FIFO服务器创建监听连接命名管道,所述监听连接命名管道用于接收所述FIFO客户端发送的连接建立请求消息。在一种可能的实施例中,所述FIFO服务器根据所述连接建立请求消息创建与所述FIFO客户端对应的FIFO会话包括:所述FIFO服务器根据所述第一本地命名管道的标识信息创建所述第二本地命名管道,所述第二本地命名管道的标识信息为所述FIFO服务器随机生成;所述FIFO服务器根据所述第一远程命名管道的标识信息获取所述第二远程命名管道。本专利技术实施例的第二方面提供了一种基于FIFO命名管道进行双工通信的方法,所述方法应用于Linux系统,包括:FIFO客户端向FIFO服务器发送连接建立请求消息,所述连接建立请求消息包括所述FIFO客户端的第一本地命名管道的标识信息,所述第一本地命名管道用于所述FIFO客户端接收信息,以使得所述FIFO服务器根据所述连接建立请求创建FIFO会话,所述FIFO会话包括第二本地命名管道和第二远程命名管道,所述第二本地命名管道用于所述FIFO会话接收信息,所述第二远程命名管道为在所述FIFO会话中与所述第一本地命名管道对应的管道,所述第二远程命名管道用于向所述FIFO客户端发送信息;所述FIFO客户端通过所述第一本地命名管道接收所述FIFO服务器发送的连接建立请求响应消息,所述连接建立请求响应消息包括第二本地命名管道的标识信息;所述FIFO客户端通过第一远程命名管道向所述FIFO会话发送信息,所述第一远程命名管道为在所述FIFO客户端中与所述第二本地命名管道对应的管道。在一种可能的实施例中,所述FIFO客户端向FIFO服务器发送连接建立请求消息之前,所述方法还包括:获取所述FIFO服务器的监听连接命名管道的标识信息,所述所述监听连接命名管道用于接收所述FIFO客户端发送的连接建立请求消息;生成随机字符,以根据所述随机字符创建所述第一本地命名管道。本专利技术实施例的第三方面提供了一种FIFO服务器,包括:收发单元,用于接收FIFO客户端发送的连接建立请求消息,所述连接建立请求消息包括所述FIFO客户端的第一本地命名管道的标识信息,所述第一本地命名管道用于所述FIFO客户端接收信息;创建单元,用于根据所述连接建立请求消息创建与所述FIFO客户端对应的FIFO会话,所述FIFO会话包括第二本地命名管道和第二远程命名管道,所述第二本地命名管道用于所述FIFO会话接收信息,所述第二远程命名管道为在所述FIFO会话中与所述第一本地命名管道对应的管道,所述第二远程命名管道用于向所述FIFO客户端发送信息;响应于所述连接建立请求消息,所述收发单元还用于通过所述FIFO会话的第二远程命名管道向所述FIFO客户端发送连接建立请求响应消息,所述连接建立请求响应消息包括所述第二本地命名管道的标识信息,以使得所述FIFO客户端通过第一远程命名管道向所述FIFO会话发送信息,所述第一远程命名管道为在所述FIFO客户端中与所述第二本地命名管道对应的管道。在一种可能的实施例中,所述创建单元包括:创建模块,用于根据所述第一本地命名管道的标识信息创建所述第二本地命名管道,所述第二本地命名管道的标识信息为所述FIFO服务器随机生成;获取模块,用于根据所述第一远程命名管道的标识信息获取所述第二远程命名管道。本专利技术实施例的第四方面提供了一种FIFO客户端,包括:第一收发单元,用于向FIFO服务器发送连接建立请求消息,所述连接建立请求消息包括所述FIFO客户端的第一本地命名管道的标识信息,所述第一本地命名管道用于所述FIFO客户端接收信息,以使得所述FIFO服务器根据所述连接建立请求创建FIFO会话,所述FIFO会话包括第二本地命名管道和第二远程命名管道,所述第二本地命名管道用于所述FIFO会话接收信息,所述第二远程命名管道为在所述FIFO会话中与所述第一本地命名管道对应的管道,所述第二远程命名管道用于向所述FIFO客户端发送信息;第二收发单元,用于通过所述第一本地命名管道接收所述FIFO服务器发送的连接建立请求响应消息,所述连接建立请求响应消息包括第二本地命名管道的标识信息;所述第二收发单元还用于通过第一远程命名管道向所述FIFO会话发送信息,所述第一远程命名管道为在所述FIFO客户端中与所述第二本地命名管道对应的管道。本专利技术第五方面提供了一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机管理类程序时实现如上述任意一项所述的基于FIFO命名管道进行双工通信的方法的步骤。本专利技术第六方面提供了一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于:所述计算机管理类程序被处理器执行时实现如上述任意一项所述的基于FIFO命名管道进行双工通信的方法的步骤。从以上技术方案可以看出,本专利技术实施例具有以下优点:FIFO服务器接收FIFO客户端发送的连接建立请求消息,所述连接建立请求消息包括所述FIFO客户端的第一本地命名管道的标识信息,所述第一本地命名管道用于所述FIFO客户端接收信息;所述FIFO服务器根据所述连接建立请求消息创建与所述FIFO客户端对应的F本文档来自技高网...

【技术保护点】
1.一种基于先入先出队列FIFO命名管道进行双工通信的方法,所述方法应用于Linux系统,其特征在于,包括:FIFO服务器接收FIFO客户端发送的连接建立请求消息,所述连接建立请求消息包括所述FIFO客户端的第一本地命名管道的标识信息,所述第一本地命名管道用于所述FIFO客户端接收信息;所述FIFO服务器根据所述连接建立请求消息创建与所述FIFO客户端对应的FIFO会话,所述FIFO会话包括第二本地命名管道和第二远程命名管道,所述第二本地命名管道用于所述FIFO会话接收信息,所述第二远程命名管道为在所述FIFO会话中与所述第一本地命名管道对应的管道,所述第二远程命名管道用于向所述FIFO客户端发送信息;响应于所述连接建立请求消息,所述FIFO服务器通过所述FIFO会话的第二远程命名管道向所述FIFO客户端发送连接建立请求响应消息,所述连接建立请求响应消息包括所述第二本地命名管道的标识信息,以使得所述FIFO客户端通过第一远程命名管道向所述FIFO会话发送信息,所述第一远程命名管道为在所述FIFO客户端中与所述第二本地命名管道对应的管道。

【技术特征摘要】
1.一种基于先入先出队列FIFO命名管道进行双工通信的方法,所述方法应用于Linux系统,其特征在于,包括:FIFO服务器接收FIFO客户端发送的连接建立请求消息,所述连接建立请求消息包括所述FIFO客户端的第一本地命名管道的标识信息,所述第一本地命名管道用于所述FIFO客户端接收信息;所述FIFO服务器根据所述连接建立请求消息创建与所述FIFO客户端对应的FIFO会话,所述FIFO会话包括第二本地命名管道和第二远程命名管道,所述第二本地命名管道用于所述FIFO会话接收信息,所述第二远程命名管道为在所述FIFO会话中与所述第一本地命名管道对应的管道,所述第二远程命名管道用于向所述FIFO客户端发送信息;响应于所述连接建立请求消息,所述FIFO服务器通过所述FIFO会话的第二远程命名管道向所述FIFO客户端发送连接建立请求响应消息,所述连接建立请求响应消息包括所述第二本地命名管道的标识信息,以使得所述FIFO客户端通过第一远程命名管道向所述FIFO会话发送信息,所述第一远程命名管道为在所述FIFO客户端中与所述第二本地命名管道对应的管道。2.根据权利要求1所述的方法,其特征在于,所述FIFO服务器接收FIFO客户端发送的连接建立请求消息之前,所述方法还包括:创建监听连接命名管道,所述监听连接命名管道用于接收所述FIFO客户端发送的连接建立请求消息。3.根据权利要求1所述的方法,其特征在于,所述FIFO服务器根据所述连接建立请求消息创建与所述FIFO客户端对应的FIFO会话包括:所述FIFO服务器根据所述第一本地命名管道的标识信息创建所述第二本地命名管道,所述第二本地命名管道的标识信息为所述FIFO服务器随机生成;所述FIFO服务器根据所述第一远程命名管道的标识信息获取所述第二远程命名管道。4.一种基于先入先出队列FIFO命名管道进行双工通信的方法,所述方法应用于Linux系统,其特征在于,包括:FIFO客户端向FIFO服务器发送连接建立请求消息,所述连接建立请求消息包括所述FIFO客户端的第一本地命名管道的标识信息,所述第一本地命名管道用于所述FIFO客户端接收信息,以使得所述FIFO服务器根据所述连接建立请求创建FIFO会话,所述FIFO会话包括第二本地命名管道和第二远程命名管道,所述第二本地命名管道用于所述FIFO会话接收信息,所述第二远程命名管道为在所述FIFO会话中与所述第一本地命名管道对应的管道,所述第二远程命名管道用于向所述FIFO客户端发送信息;所述FIFO客户端通过所述第一本地命名管道接收所述FIFO服务器发送的连接建立请求响应消息,所述连接建立请求响应消息包括第二本地命名管道的标识信息;所述FIFO客户端通过第一远程命名管道向所述FIFO会话发送信息,所述第一远程命名管道为在所述FIFO客户端中与所述第二本地命名管道对应的管道。5.根据权利要求4所述的方法,其特征在于,所述FIFO客户端向...

【专利技术属性】
技术研发人员:杨亮陈少杰张文明
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1