C# 管道通信
我正在创建一个应用程序,其中有三个组件:C# 管道通信,c#,c,C#,C,我正在创建一个应用程序,其中有三个组件: 例1 WCF服务 例2 EXE1将数据写入管道,然后WCF读取数据并将其发送给EXE2。 但情况是,EXE1将数据写入for循环中的管道。所以我只想知道,假设EXE1已将数据写入管道,但wcf正在执行其他工作,并且尚未读取该数据。现在EXE1正在尝试写入第二个数据。所以在这种情况下,前一个数据是重写还是EXE1等待wcf服务一段时间 我想控制这个条件,直到第一个数据没有被wcf读取,EXE1必须等待一段时间。我想同步发送数据到EXE2 我该怎么做?您
- 例1
- WCF服务
- 例2
我该怎么做?您必须让
WCF
服务确认它将要接收的一组特定字节
因此Exe1
发送10个字节,并等待WCF确认
如果WCF
未确认,Exe1
将重新发送它(超时)
如果WCF
确认它,您将发送接下来的10个字节,依此类推……作为其命名的管道数据,首先进入的数据首先出来,管道中的数据不会被覆盖
对于在另一端读取之前等待写入:您最好控制在另一端读取的量(例如,将消息长度作为第一个字节传递)。因此,读者知道它应该读取多少数据,并且一次只能从管道中读取多少数据。但是EXE1如何知道wcf是否读取数据。第二个数据被覆盖到第一个数据,或者第一个数据将被删除。@sunilpol在向wcf发送一些数据后,如果它没有通过发送确认信息(如码字)来响应您,那么它将在发送一些数据后删除。@sunilpol(您选择的一些二进制单词)如果没有时间限制,您会知道WCF没有收到数据。好的。我会这样做。但是请告诉我,当WCF读取数据,现在exe1得到确认,现在它写入第二个数据时,第一个数据会自动删除或被第二个数据覆盖data@sunilpol我不知道有关WCF的问题,但我认为你必须编辑这个问题,并告诉更多关于你的WCF服务的信息ice.你已经创建了它,如果是,为什么不在WCF
本身中创建一个线程,专门监听Exe1
。在Exe1中不创建管道&WCF仅在exe2请求数据时读取数据