【发布时间】:2016-08-11 11:20:10
【问题描述】:
问题
前几天,我对我的 C# 应用程序 有了一个“惊人”的想法。我不想为每种数据类型(文本、图像、文件)使用一个端口,我想为所有三种数据类型使用一个一个端口。我非常接近实现这一点。
到目前为止,我有一个 TcpListener 在端口 23722 上侦听。当 TcpClient 连接时,我开始使用 StreamWriter.Write(datareceived); 将传入数据写入文件,并且数据以特定模式出现(每行代表图像、文本消息或文件):
dnett{这是一个示例文本消息。)
dneti{NLtqmuvtGBdDY546 ... NLtqmuvtGBdDY546}
dnetf{Example.exe,NLtqmuvtGBdDY546 ... NLtqmuvtGBdDY546}
从上面的图片和文件中可以看出,在发送前会转换为 Base64。要将它们转换回来,我会使用byte[] tmp = Convert.FromBase64String(string),但问题是当数据仍在传入时我无法读取文件逐行(正在使用StreamWriter)。另一个问题是,我不知道哪些数据已经被处理(例如:哪些文件已经被写入文件系统)。
我需要的是:
- 一种同时读/写文件的解决方案
- 了解哪些数据已被处理
或
- 另一种方法(不同的方法)
谢谢
顺便说一句,我只有 15 岁,英语不是我的第一语言,所以对于可能愚蠢的问题和上述问题中的错误,我深表歉意。
【问题讨论】:
-
为什么要写入文件?为什么不使用StreamReader.ReadLIne() 读取一行并解析它?