伪造IO流

时间:2014-08-12 07:02:46

标签: c#

作为我的学生团体业余爱好项目的一部分,我正在创建微控制器有线网络的模拟,以测试我们编写的算法。每个控制器连接到多个数据端口,每个端口都有一个输入和输出流。我通过为每个端口提供BinaryReaderBinaryWriter来建模这种关系,每个端口都由自己的MemoryStream支持。然而,当我试图连接'时,我遇到了麻烦。不同控制器之间的端口模拟延迟超出了模拟迭代的范围,所以我只需要以某种方式直接链接它们。

所以我的问题是:如何使用两个不同的BinaryReader / BinaryWriterMemoryStream集合伪造这样的IO流,这样当我写一个时,另一个可以马上读了吗?

1 个答案:

答案 0 :(得分:0)

我最终使用通过环回地址相互连接的UDP套接字,它很好地模拟了网络的异步性质,而没有处理延迟问题。

我不允许发布实际代码,但实现起来相当简单。每个数据端口都有UdpClient命名空间中自己的System.Net.Sockets和随机分配的UDP端口。更新循环遍历每个端口并根据需要调用udpClient.Send()udpClient.Receive()函数,使用简单的byte[]缓冲区来处理不完整的消息。我认为.Net中高级网络的概述超出了这个问题的范围,但MSDN上有一些很好的资源可供Google搜索。