我想做一个使用SSL/TLS的协议分析,幸运的是我可以安装自己的证书,DNS部分不会成为问题。我的问题是我用什么来做到这一点。我考虑过使用paros,但它会比它的价值更麻烦。所以我想我可以写两个C#应用程序。第一个是伪服务器,另一个是伪客户端。两者之间有一个tcp连接,然后我可以使用wireshark。问题是,我对流的经验很少。所以,如果任何人都可以将我指向有用的文章,或者如果代码很短,那么示例会很棒。先进的谢谢你。.Net SSL/TLS传递
0
A
回答
2
从流中读取/写入数据不是非常困难,您不能只连接流,您需要有自己的代码来执行此操作。最好在它自己的线程上(或工作进程或任务或任何你需要的线程概念)。
public void ConnectStreams(Stream inStream, Stream outStream)
{
byte[] buffer = new byte[1024];
int bytesRead = 0;
while((bytesRead = inStream.Read(buffer, 0, 1024)) != 0)
{
outStream.Write(buffer, 0, bytesRead);
outStream.Flush();
}
}
基本上流操作字节数组。当我们运行这一行:
while((bytesRead = inStream.Read(buffer, 0, 1024)) != 0)
我们基本上是说,在inStream
执行Read
,把读取的字节为buffer
,在指数0
(缓冲区)和阅读的1024
字节的最高。
然后,我们分配的返回值成bytesRead
其是(在这种情况下0
和1024
之间)中读出实际的字节数,并且如果不等于0时,继续循环。
然后我们简单地将它写回outStream
,缓冲区包含数据和实际读取的字节数。我们执行刷新以实际强制输出,而不是叠加在内部缓冲区中。
当流到达EOF时,.Read
将返回0,循环将退出,您可以继续。这就是你在最简单的层面上“连接”两个数据流的方式。
相关问题
- 1. 将.Net Stream传递给IronRuby?
- 2. 将Cookie传递给Net :: HTTP.start
- 3. 在.NET中传递事件
- 4. 传递字符串到.NET
- 5. 将CLOB传递给.net dll
- 6. ASP .Net Web API传递对象
- 7. 将.net数组传递给javascript
- 8. NET Lambda传递方法参数
- 9. 将参数传递给ASP .NET页面
- 10. C#.NET MVC传递参数从DB
- 11. 传递给JavaScript字典(.NET)的字典
- 12. 将参数传递给.NET中的Task.Factory.StartNew
- 13. 传递使用JSON日期到.NET
- 14. 在.NET和PLSQL之间传递参数
- 15. 通过RPG和.NET来回传递XML
- 16. .net中的消息传递系统
- 17. .net核心传递枚举查看
- 18. 将.net webservice的值传递给jquery
- 19. 传递值在.Net中形成
- 20. 将STL/C++/CLI容器传递给.Net
- 21. NET C#DropDownList传递参数到功能
- 22. 将记录变量传递给.NET库
- 23. .Net - 传递可变数量的参数
- 24. 将.NET数据表传递给MATLAB
- 25. .NET:将自我传递给子对象
- 26. 如何将HttpContext.Current传递给在.net中使用Parallel.Invoke()方法.net
- 27. .NET核心传递依赖用于.NET 4.6项目
- 28. Objective-C:NSLog传递值(按引用传递与按值传递)
- 29. 传递
- 30. 传递
我在这里看到2个问题,一个关于编写拦截SSL/TLS的程序和另一个关于如何使用流的体系结构问题。你应该弄清楚你真正想问的问题是什么,然后问这个问题。 – Aren
@Aren我知道如何使用流氓DNS拦截这个协议。问题更多的是如何连接两个流,这样一个流就可以从另一个流中流出,反之亦然。 – David