本文整理汇总了C#中System.Net.Sockets.NetworkStream.CopyToAsync方法的典型用法代码示例。如果您正苦于以下问题:C# NetworkStream.CopyToAsync方法的具体用法?C# NetworkStream.CopyToAsync怎么用?C# NetworkStream.CopyToAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Net.Sockets.NetworkStream
的用法示例。
在下文中一共展示了NetworkStream.CopyToAsync方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReceiveFile
/// <summary>
/// Приём файла.
/// </summary>
/// <param name="socket">Сокет.</param>
private void ReceiveFile(Socket socket)
{
// Генерируем уникальное имя для файла.
var tmp_file_name = string.Format("{0}_{1}", DateTime.Now.Ticks, _fileCount);
_fileCount++;
var ns = new NetworkStream(socket);
var remote_address = (socket.RemoteEndPoint as IPEndPoint).Address.ToString();
var message_type = (MesasageType)ns.ReadByte();
if (message_type == MesasageType.Text)
{
byte[] buffer = new byte[256];
socket.Receive(buffer);
Console.WriteLine("Принято сообщение: {0}", Encoding.Unicode.GetString(buffer));
return;
}
var fs = new FileStream(tmp_file_name, FileMode.CreateNew);
ns.CopyToAsync(fs).ContinueWith((ar) =>
{
fs.Close();
fs.Dispose();
ns.Close();
ns.Dispose();
FileInfo file = new FileInfo(tmp_file_name);
if (FileSize.HasValue)
{
if (FileSize == file.Length)
{
ReceviceFileCount++;
}
else
{
Console.WriteLine("Размер принятого файла не соответствует отправленному ({0} != {1}).", FileSize, file.Length);
}
}
Console.WriteLine("Получен файл");
if (message_type == MesasageType.ReveiveFileAndExecProc)
{
ExecProcAndSendFile(tmp_file_name, remote_address, _remotePort);
}
else
{
if (IsDeleteFiles)
{
File.Delete(tmp_file_name);
}
}
});
}