c# - 接收传入流时要使用的Byte []大小是多少

标签 c# sockets

我正在使用套接字/TcpClient将文件发送到服务器,如下所示

        NetworkStream nws = tcpClient.GetStream();

        FileStream fs;

        fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
        byte[] bytesToSend = new byte[fs.Length];
        int numBytesRead = fs.Read(bytesToSend, 0, bytesToSend.Length);
        nws.Write(bytesToSend, 0, numBytesRead);

在服务器方面,我有这个问题。

我应该使用哪种byte []大小来读取流?

谢谢

最佳答案

您无法确定流的长度,只能读取直到结束为止。您可以先在流中发送长度,以便服务器知道期望的长度。但是即使这样,通信错误也可能会截断发送的内容。

关于c# - 接收传入流时要使用的Byte []大小是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2098779/

相关文章:

C# 设计模板容器?

c# - 等于 c# 中的 c++ extern

c# - 为什么 Assert.AreEqual<T> 因相同的对象而失败?

android - 如何从套接字连接读取数据 - android

c - 接受系统调用时出现段错误

c# - 如何在 Simple OData Client 中启用 gzip 压缩?

c# - 更改 ToolStripButton 上的 ToolTipText 延迟时间

c++ - TCP套接字。错误没有匹配的函数调用

c - 以独立于平台的方式在 C 语言中使用线程和套接字

php - C++ 中的 Linux 守护进程处理 PHP 请求