Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2010, 23:54   #1
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию С# передача файлов по сети

Сообственно вопрос больше теоритически.
Нужно передать файл по сети,к примеру XML
Код:
Сервер:
1)Открываю файл как бинарный
2)Считаю хэш файла
3)Создаю сокет ( TCP IP )
4)Отправляю хеш
5)Отправляю цепочку байтов(файл)
Клиент:
1)Принимаю хэш
2)Принимаю цепочку
3)Сравниваю с хэшом если == то всё ок,если <> то повторный запрос на приём
Так вот в чём вопрос:
1)на сколько правильно так проверять целостность
2)И как посчитать хэш (C#)
bondik вне форума Ответить с цитированием
Старый 04.03.2010, 01:21   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Вы собираетесь использовать UDP протокол?
При TCP невозникает потерь данных...
Ну передачей контрольных чисел и сравневаний много... можете использовать готовые, можно свои написать... можно тупо сравнить размер...
dampirik вне форума Ответить с цитированием
Старый 04.03.2010, 01:27   #3
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
По умолчанию

Код:

MD5 HASH

/// <summary>
        /// Get string MD5 Hash / Получить MD5 Hash строки
        /// </summary>
        /// <param name="workString">Working string / Рабочая строка</param>
        /// <param name="size">Type register result string hash / Тип регистра результирующей строки хеша</param>
        /// <returns>String MD5 Hash / Строка MD5-Hash</returns>
        public static string GetMd5Hash(string workString, HashCharSize size)
        {
            string result = String.Empty; //Help build the result string hash / Создаём результирующую строку хеша
            foreach (byte b in new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(workString))) //Calculate MD5 Hash Вычисляем MD5 Hash
            {
                result += b.ToString(GetHashCharSize(size)); //Add the value of each byte in the resulting string / Добавляем каждое значение байта в результирующую строку
            }
            return result; //Return the result / Возвращаем результат
        }

/// <summary>
        /// ENUM, describing the type of rasskladki result string hash / ENUM, описывающий тип расскладки результирующей строки хеша
        /// </summary>
        public enum HashCharSize
        {
            /// <summary>
            /// The resulting string hash in upper case / Результирующая строка хеша в верхнем регистре
            /// </summary>
            LOWER,
            /// <summary>
            /// The resulting string hash in lower case / Результирующая строка хеша в нижнем регистре
            /// </summary>
            UPPER
        }
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558
Arnezami вне форума Ответить с цитированием
Старый 04.03.2010, 10:46   #4
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

с мсдн пример подсчета хеша массива байт (или файла)
Код:
		private string ComputeMD5Checksum(string path)
		{
			using (FileStream fs = System.IO.File.OpenRead(path))
			{
				MD5 md5 = new MD5CryptoServiceProvider();
				byte[] fileData = new byte[fs.Length];
				fs.Read(fileData, 0, (int)fs.Length);
				byte[] checkSum = md5.ComputeHash(fileData);
				string result = BitConverter.ToString(checkSum).Replace("-", String.Empty);
				return result;
			}
		}
m0nax вне форума Ответить с цитированием
Старый 04.03.2010, 10:49   #5
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

всем спасибо
bondik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# передача файлов в сети TaTT DoGG Помощь студентам 20 02.04.2017 15:53
Потоки, передача файлов по сети SeЯgey Работа с сетью в Delphi 3 02.04.2011 23:51
Передача файлов по сети SL1CK Работа с сетью в Delphi 3 05.12.2009 00:08
Передача файлов по сети Sparky Общие вопросы Delphi 5 31.10.2009 19:34