gpt4 book ai didi

c# - .Net SSL/TLS 直通

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:19 25 4
gpt4 key购买 nike

我想做一个使用 SSL/TLS 的协议(protocol)分析幸运的是我可以安装我自己的证书并且 DNS 部分不会成为问题。我的问题是我用什么来做到这一点。我考虑过使用 paros 但它会比它的值(value)更麻烦。所以我想我可以写两个 C# 应用程序。第一个是伪服务器,另一个是伪客户端。两者之间都有一个 tcp 连接,然后我可以在上面使用 wireshark。问题是,我对流的经验很少。因此,如果有人可以向我指出有用的文章,或者如果代码很短,那么示例会很棒。先谢谢你。

最佳答案

从流中读/写并不是很难,你不能只连接流,你需要有自己的代码来做到这一点。最好在它自己的线程上(或工作进程或任务或您需要的任何线程概念)。

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();
}
}

基本上,Streams 对字节数组进行操作。当我们运行这一行时:

while((bytesRead = inStream.Read(buffer, 0, 1024)) != 0)

我们基本上是说,在 inStream 上执行 Read,将读取的字节放入 buffer,在索引 0(在缓冲区中)并读取最大 1024 字节。

然后我们将返回值分配给 bytesRead,这是读取的实际字节数(在本例中介于 01024 之间)和如果不等于0,继续循环。

然后我们只需将它写回到 outStream 中,缓冲区包含数据,以及实际读取的字节数。我们执行刷新以实际强制输出输出而不是在内部缓冲区中堆叠。

当流到达 EOF 时,.Read 将返回 0,循环将退出,您可以继续。这就是您在最简单的级别上“连接”两个流的方式。

关于c# - .Net SSL/TLS 直通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13521860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com