小编use*_*203的帖子

CryptoStream 没有像预期的那样刷新

我正在处理的 C# .NET Framework 4.5 代码应该允许我通过加密流将文本传输到另一个程序。我创建了两个简单的程序来演示我的问题。EncryptionTestA 是服务器,意味着首先运行。EncryptionTestB 是客户端,打算运行第二个。一旦 EncryptionTestB 连接,它就会通过 CryptoStream 将文本“hello world”传输到另一个程序。至少在理论上。

实际发生的事情没什么。我通过在内部接口上使用 Wireshark 观察数据传输来确认这一点。此代码绝对不会以其现有形式传输任何数据。我能够让它发送“hello world”的唯一方法是在客户端关闭 StreamWriter。这样做的问题是它还关闭了我不想做的底层 TCP 连接。

所以,我的问题是:如何在不关闭底层 TCP 连接的情况下刷新 StreamWriter/CryptoStream?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections;
using System.Threading;
using System.Security;
using System.Security.Cryptography;
using System.Net;
using System.Net.Sockets;

namespace EncryptionTestA
{
    class Program
    {
        static void Main(string[] args)
        {
            TcpListener listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 1892);
            listener.Start();
            TcpClient client = listener.AcceptTcpClient();
            NetworkStream ns = client.GetStream();

            Rijndael aes = RijndaelManaged.Create();
            byte[] key …
Run Code Online (Sandbox Code Playgroud)

.net c# networking

4
推荐指数
1
解决办法
2313
查看次数

标签 统计

.net ×1

c# ×1

networking ×1