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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2010, 21:22   #1
snow40
 
Регистрация: 30.11.2010
Сообщений: 4
Смущение Передача файлов.Ошибка

Добрый вечер!Создал прогу, которая передает файлы.Один файл кидает без проблем, зато если выбрать 2ой то клиент почему-то не принимает размер.


Клиент
.........
FileInfo sel = new FileInfo((string)lv.SelectedItems[0].Tag);\\ыобственно получаю путь
saveFileDialog1.Filter = sel.Extension + " files (*" + sel.Extension + ")|*" + sel.Extension + "|All files (*.*)|*.*";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Visible = true;

string a = Convert.ToString(sel);\\путь я передаю серверу.т.к.сервером кидую его полностью и формирую дерево
networkStream = socketForServer.GetStream();
a = "s" + a;
streamWriter.WriteLine(a);\\пишу путь серверу
streamWriter.Flush();
FileStream fs = new FileStream(saveFileDialog1.FileName , FileMode.OpenOrCreate);
BinaryFormatter outformat = new BinaryFormatter();
BinaryWriter bw = new BinaryWriter(fs);
//int count = int.Parse(outformat.Deserialize(net workStream).ToString());//получаем размертут ошибка на 2ой попытке.
int count = int.Parse(streamReader.ReadLine()); \\получаю размер

for (int i = 0; i < count; i += 1024)//цикл принимает кусочки файла.прервертся пока не передаст
{
byte[] buf = (byte[])(outformat.Deserialize(networkStre am));//читаем из потока и записываем
bw.Write(buf);

}

MessageBox.Show("Файл сохранен!", "Сохранено!");
saveFileDialog1.Reset();
bw.Close();
fs.Close();
pictureBox1.Visible = false;



Сервер
....................
str-путь

byte[] buf = new byte[1024 ];
BinaryFormatter format = new BinaryFormatter();
FileInfo f1 = new FileInfo(str);
FileStream fs = new FileStream(str, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
long k = f1.Length;
int count;
streamWriter.WriteLine(k); //передаём размер
streamWriter.Flush();
while ((count=br.Read(buf, 0, 1024)) > 0)
{
format.Serialize(networkStream, buf);//теперь в цикле по 1024 байт передаем файл

}

fs.Close();
br.Close();



помогите чем можно плз
Изображения
Тип файла: jpg ошибка.jpg (161.4 Кб, 120 просмотров)
Вложения
Тип файла: rar кп+гиф.rar (173.0 Кб, 5 просмотров)
snow40 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача файлов Lemo Помощь студентам 16 19.05.2010 17:39
Передача файлов. dradysman Фриланс 7 09.03.2010 12:27
Передача файлов Malder Общие вопросы .NET 2 03.11.2008 08:04
Передача файлов DM_bite Свободное общение 1 15.09.2008 16:22
Передача файлов wolff Работа с сетью в Delphi 3 03.03.2007 15:54