相关疑难解决方法(0)

流包装器使Stream可以搜索?

我有一个System.IO.Stream不可搜索的只读实现(并且它Position总是返回0).我需要将它发送给Seek在流上执行某些操作(也就是设置位置)的消费者.这不是一个巨大的寻求 - 比如当前位置的+/- 100.是否有现有的Stream包装器可以为流添加缓冲功能以进行简单的Seek操作?

更新:我应该补充说我的消费者是NAudio Mp3FileReader.我真的只需要一种播放(缓慢且无限期)流式MP3的方法.我认为这是一个错误,NAudio希望能够随意寻找他们的数据源.

.net c# stream seek naudio

19
推荐指数
2
解决办法
1万
查看次数

StreamWriter不会刷新到NetworkStream

使用a StreamWriter写入a NetworkStream和a StreamReader来读取响应.该应用程序正在发送命令并将响应读取到新闻服务器.

简化代码(无错误处理等):

tcpClient = new TcpClient();
tcpClient.Connect(Name, Port);

networkStream = tcpClient.GetStream();
serverReader = new StreamReader(networkStream, Encoding.Default);
serverWriter = new StreamWriter(networkStream, Encoding.ASCII) {
                     AutoFlush = true
                   };

// reads the server's response to the connect:  "200 news.newsserver.com"
// commenting out these lines doesn't solve the problem
while (serverReader.Peek() > -1) {
    serverReader.ReadLine();
}

serverWriter.WriteLine("authinfo user username");

// expect response "381 more authentication required", but code just blocks
string response = serverReader.ReadLine();
Run Code Online (Sandbox Code Playgroud)

代码在最后一行阻塞,可能等待网络流发送响应.

我可以通过设置超时循环来避免挂起应用程序serverReader.Peek(),但我会一直超时; …

.net networkstream streamwriter

2
推荐指数
1
解决办法
5393
查看次数

标签 统计

.net ×2

c# ×1

naudio ×1

networkstream ×1

seek ×1

stream ×1

streamwriter ×1