8得票3回答
正确的关闭TCP连接方式是什么?

我有一个TcpClient对象,它使用其底层的NetworkStream.Write()向服务器发送一些数据. TcpClient server = new TcpClient(serverName, 50001); /* ... */ NetworkStream stream = se...

10得票5回答
获取NetworkStream中可用数据的长度

我希望能够在C#中获取TCP网络流中可用的数据长度,以设置缓冲区的大小,然后再从网络流中读取。有一个NetworkStream.Length属性,但尚未实现,而且我不想为缓冲区分配过大的空间,因为这会占用太多空间。我想到的唯一方法是在数据传输之前插入另一个数据告知其大小,但这似乎有些混乱。有什...

10得票5回答
在哪里可以找到高分辨率的财务数据?

我正在编写一些股票机器学习软件,想找一些分笔数据或至少3到5分钟的数据。 我希望有一年或两年用于测试。 我不太关心数据来自哪个交易所,只要是从某个主要交易所得到的就可以。 还有没有什么地方可以连接到延迟的“实时”数据流? 数据不一定是免费的,但免费当然更好 :-)

7得票2回答
如何在NetworkStream字节数组中放置分隔符?

我正在构建一个服务器和客户端之间通信的方式。目前的工作方式是,数据流的第一个字节包含要传递的内容指示器,然后查找该请求的类别,以确定请求的长度: stream.Read(message, 0, 1) if(message == <byte representation of a kn...

12得票8回答
TcpClient.GetStream().DataAvailable返回false,但流中仍有更多数据。

因此,似乎阻塞式Read()在接收所有发送给它的数据之前就返回了。因此我们使用一个由所涉及的流中的DataAvailable值控制的循环来包装Read()。问题在于,在这个while循环中,您可能会收到更多的数据,但是没有任何后台处理让系统知道这一点。我在网上找到的大多数解决方案都无法适用于我...

9得票2回答
C# - TcpClient - 如何检测数据流的结束?

我正在尝试将一台古老的网络摄像机与我的计算机连接,但我卡在了一个非常基本的问题上--检测流的结束。 我正在使用 TcpClient 与相机通信,并且我可以看到它传输命令数据,这里没有任何问题。 List<int> incoming = new List<i...

9得票3回答
C# - 如何关闭NetworkStream,调用stream.Close还是socket.Shutdown?

我想知道如何最好地处理使用Socket对象和NetworkStream对象的类?该类具有一个NetworkStream实例和一个Socket实例,用于创建NetworkStream。 this.socket = new Socket( A...

19得票2回答
如何在.NET SslStream中设置超时并重复读取数据?

我只需要从 SslStream 中读取最多 N 个字节,但如果在超时之前没有接收到任何字节,则取消操作,同时保持流处于有效状态以便稍后再次尝试。 (*) 这对于非SSL流(例如 NetworkStream)很容易实现,只需使用其 ReadTimeout 属性即可使流在超时时引发异常。不幸的是,...

11得票4回答
什么原因会导致 NetworkStream.Read 被阻塞或挂起?

MSDN文档似乎表明NetworkStream.Read将总是立即返回。如果没有找到数据,则返回0。但是,我有一些代码当前正在运行,只有在某些情况下(我还没有弄清楚哪些情况),NetworkStream.Read似乎会挂起。以下是我从转储文件中收集到的堆栈跟踪: 00000000705ae...

18得票5回答
C#: 实现 NetworkStream.Peek?

目前在C#中没有NetworkStream.Peek方法。那么如何实现一个类似于NetworkStream.ReadByte的Peek方法,但返回的byte并不会从Stream中移除?