も、128メガバイトは良い方法ではありません...その良いことを送った後..小さなバッファを読むためにある場合反対側にまっすぐ
これをチェックしてください。
あなたは、これは(サーバー/クライアント)
FileStream fs;
NetworkStream network;
int packetSize = 1024*8;
Sendメソッド
public void Send(string srcPath, string destPath)
{
byte data;
string dest = Path.Combine(destPath, Path.GetFileName(srcPath));
using (fs = new FileStream(srcPath, FileMode.Open, FileAccess.Read))
{
try
{
long fileSize = fs.Length;
long sum = 0;
int count = 0;
data = new byte[packetSize];
while (sum < fileSize)
{
count = fs.Read(data, 0, packetSize);
network.Write(data, 0, count);
sum += count;
}
network.Flush();
}
finally
{
fs.Dispose();
data = null;
}
}
}
受信方法に共通する必要があります
反対側に、fileNameとファイルサイズを送信した後:
public void Receive(string destPath, long fileSize)
{
byte data;
using (fs = new FileStream(destPath, FileMode.Create, FileAccess.Write))
{
try
{
int count = 0;
long sum = 0;
data = new byte[packetSize];
while (sum < fileSize)
{
count = network.Read(data, 0, packetSize);
fs.Write(data, 0, count);
sum += count;
}
}
finally
{
fs.Dispose();
data = null;
}
}
}
実際に試してみました私はSendFileの仕組みを理解していますが、ReceiveFileがないので ができませんでした。他の側からファイルを受け取る方法を知ることができませんでした..ファイルの最後まで、 .. !!何か考えているのですか? –