作为我的学生小组业余项目的一部分,我正在创建一个由微控制器组成的有线网络的模拟,以测试我们编写的算法。每个控制器连接到多个数据端口,每个端口都有一个输入和输出流。我通过给每个端口一个BinaryReader和BinaryWriter来建模这种关系,每个端口都有自己的MemoryStream支持。然而,当我试图“连接”不同控制器之间的端口时,我遇到了一个障碍。模拟延迟超出了这个模拟迭代的范围,所以我只需要以某种方式直接链接它们。
因此,我的问题是:如何使用两个不同的BinaryReader/BinaryWriter或MemoryStream集来伪造这样的IO流,这样,当我向其中一个写入时,另一个可以立即读取它?
发布于 2014-08-19 19:11:55
最后,我使用了通过环回地址相互连接的UDP套接字,它很好地模拟了网络的异步性质,而没有处理延迟问题。
我不允许发布实际的代码,但是实现相当简单。每个数据端口都有来自System.Net.Sockets命名空间的自己的System.Net.Sockets和一个随机分配的UDP端口。update循环遍历每个端口并酌情调用udpClient.Send()和udpClient.Receive()函数,使用简单的byte[]缓冲区来处理不完整的消息。我认为.Net高级网络的概述超出了这个问题的范围,但在MSDN上有一些不错的资源,只要谷歌搜索即可。
https://stackoverflow.com/questions/25258105
复制相似问题