gpt4 book ai didi

c# - 通过 TCP 发送/接收文件

转载 作者:可可西里 更新时间:2023-11-01 02:44:41 27 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
TcpClient send data and receive data over network
Loop until TcpClient response fully read

我正在尝试通过 TCP 从服务器向客户端发送文件。

服务器端代码,发送文件:

NetworkStream netStream = client.GetStream();
FileStream fs = new FileStream("usb.exe",FileMode.Open, FileAccess.Read);
byte[] data = new byte[fs.Length];
fs.Read(data,0, data.Length);
fs.Flush();
fs.Close();

netStream.Write(data, 0, data.Length);
netStream.Flush();

客户端代码,接收文件:

FileStream str = new FileStream("usb.exe", FileMode.Create, FileAccess.Write);
byte[] data = new byte[1024];

while ((dataCitit = netStream.Read(data,0, data.Length)) > 0)
{
Thread.Sleep(25);
Application.DoEvents();

str.Write(data, 0, dataCitit);
totalbytes += dataCitit;
}
str.Close();

有人能指出我错在哪里吗?

该文件有 1036 kb,它只发送 1032 kb,然后卡住了,无法从客户端的 while 循环中退出。

此外,如果我关闭服务器并非常快速地打开它,它会发送最后一个字节并完整发送文件。 (此文件完美打开)

我认为这是服务器端的一个问题,没有发送所有字节,但是为什么以及在哪里......

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com