C# 关于行动记忆流

C# 关于行动记忆流,c#,C#,我在互联网上找到了这段代码,不明白服务器如何为客户端发送完整大小的文件,为什么客户端可以知道文件大小。请帮助我回答:( 代码服务器: FileStream fs=null; FileInfo fi=新的FileInfo(textBox4.Text); ulong fileSize=(ulong)fi.Length; 字节[]buf=新字节[32*1024]; MemoryStream ms=新的MemoryStream(buf)// BinaryWriter bw=新的BinaryWriter(

我在互联网上找到了这段代码,不明白服务器如何为客户端发送完整大小的文件,为什么客户端可以知道文件大小。请帮助我回答:(

代码服务器:
FileStream fs=null;
FileInfo fi=新的FileInfo(textBox4.Text);
ulong fileSize=(ulong)fi.Length;
字节[]buf=新字节[32*1024];
MemoryStream ms=新的MemoryStream(buf)//
BinaryWriter bw=新的BinaryWriter(毫秒);
写入(文件大小);
fs=File.OpenRead(textBox4.Text);
int ns=socket.Send(buf,sizeof(ulong),SocketFlags.None);//为什么只有32KB哪个客户端
//可以知道文件大小
乌隆位置=0;
while(pos如果(nr服务器首先写入:

bw.Write(fileSize);
客户机首先阅读以下内容:

ulong fileSize = br.ReadUInt64(); 

因此,客户端知道要跟多少字节。

Thank:).buf发送多次或仅发送一次@Moo-Juice@ThanhBình不确定您的意思-在上面粘贴的示例代码中,服务器发送文件的大小,然后发送整个文件本身。客户端读取长度,然后随后读取,直到读取足够的字节(或者出现错误并引发异常).int ns=socket.Send(buf,sizeof(ulong),SocketFlags.None);我想知道大小buf超过32kb这行代码和socket为客户端已知大小文件发送多次?对不起,我的英语不好:)
bw.Write(fileSize);
ulong fileSize = br.ReadUInt64();