【发布时间】:2013-01-25 20:18:32
【问题描述】:
我有一个服务器应用程序执行另一个应用程序,第二个应用程序构建一个日志文件, 我希望服务器通过 WCF 将其发送给客户端。
我希望客户端在 EXEC 应用更新日志时读取日志。
我使用了一个返回流(日志文件)的操作合同。 问题是当我第一次发送流时,日志仍然是空的, 并且客户端看不到服务器执行写入的“更新”。
这是服务器代码:
public Stream GetLog()
{
Stream stream = new FileStream(@"Log.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
return stream;
}
来自服务器的 EXEC 只是写入“Log.txt”文件
这是客户端代码:
public void SaveLog()
{
Stream stream = ServerProxy.GetLog();
StreamWriter writer = new StreamWriter("NEWLog.txt");
writer.AutoFlush = true;
StreamReader reader = new StreamReader(stream);
char[] buf = new char[100];
int count = 0;
while (count = reader.ReadBlock(buf, 0, 100) > 0)
{
writer.Write(buf, 0, count);
}
stream.Close();
writer.Close();
}
如何使用实时登录更新客户端?
【问题讨论】:
-
您是如何从客户端的日志文件中读取数据的?你只展示你是如何打开它的。
-
我有一个流阅读器..它写在客户端代码中..
-
如果您包含您的代码会有所帮助,因为该注释无助于更清楚地解释您的逻辑为什么不起作用。
-
它在这里,在我发布的客户端代码中
-
我明白了——抱歉,完全错过了!
标签: c# wcf file stream contract