|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.12.2010, 21:22 | #1 |
Регистрация: 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(); помогите чем можно плз |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача файлов | 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 |