Вопрос по WCF в С#. Нужно передать с клиента на сервер массив байт. Если передавать не большой массив - все работает, но если массив большой - сервер возвращает ошибку "Entity too large". Как исправить? Код: Клиент: Code: OpenFileDialog tmpFile = new OpenFileDialog(); tmpFile.InitialDirectory = "c:\\"; tmpFile.Filter = "Image files (*.JPG)|*.JPG|All files (*.*)|*.*"; tmpFile.FilterIndex = 2; tmpFile.RestoreDirectory = true; if (tmpFile.ShowDialog() == DialogResult.OK) { try { FileStream fs = new FileStream(tmpFile.FileName, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] mas = new byte[fs.Length]; fs.Read(mas, 0, (int)fs.Length); fs.Close(); MessageBox.Show(Files("add", rsa, mas, tmpFile.SafeFileName)); } catch (Exception ex) { MessageBox.Show("Невозможно открыть файл. Сервер вернул ошибку: " + ex.Message); } } Сервер: Code: public string Files(string mode, int uKey, byte[] byteMass, string fName) { if (mode == "add") { using (connection) { //получаем айдишник по ключу int uID = 0; connection.Open(); SqlCommand command = new SqlCommand(@"SELECT uID FROM tSess WHERE uKey = " + uKey + "", connection); uID = Convert.ToInt32(command.ExecuteScalar()); command = new SqlCommand(@"SELECT uName FROM tUsers WHERE uID = " + uID + "", connection); string uName = command.ExecuteScalar().ToString(); string fPath=".\\users\\"+uName+"\\"; //записуем файл на винт FileStream fs = new FileStream(fPath+fName, FileMode.Create, FileAccess.Write, FileShare.Write); fs.Write(byteMass, 0, (int)byteMass.Length); fs.Close(); //добавляем файл владельцу ключа, если таковой существует if (uID != 0) { command = new SqlCommand(@"INSERT INTO tFiles (uID, fName, fPath) VALUES('" + uID + "', '" + fName + "', '" + fPath + "')", connection); Console.WriteLine(command.CommandText.ToString()); command.ExecuteNonQuery(); connection.Close(); return "Added!"; } else { connection.Close(); return "False :("; } } }
А каким протоколом ты данные отправляешь, я что то не увидел в коде? Может я просмотрел? По поводу ошибки - размер пакета превышает максимально дозволенный. Как пример, можно посмотреть реализацию отправки изображения посредством протокола UPD у которого максимальный размер 65.535 Bytes, а размер картинки превышает размер пакета, то есть картинку передаёт несколькими пакетами. ТЫЦ
UDP не покатит, т.к. нужна 100% целостность данных. Кароче, прийдется резать картинку на несколько массивов? А как функцией принять несколько массивов? По ссылке не совсем то. Нужно передать их в цикле. Тоесть что-то в духе: int count = length/65000; byte[] mas = new byte[65000]; for(int i = 0; i<count; i++) { mas = чему оно равно?; и как отправить?; }
Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int n = int.Parse(Input("Enter N: ")), a = int.Parse(Input("Enter A: ")), d=int.Parse(Input("Enter D: ")); int[] nums = new int[n]; nums[0]=a; Console.Write(a.ToString()+" "); for (int i = 1; i < nums.Length; i++) { nums[i] = nums[i - 1] + d; Console.Write(nums[i].ToString() + " "); } Console.ReadLine(); } static string Input(string prompt) { Console.Write(prompt); return Console.ReadLine(); } } } Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[] arr = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int k = 4, l = 9; int sum = 0; for (int i = k; i <= l; i++) sum += arr[i]; Console.WriteLine(sum.ToString()); Console.ReadLine(); } } }
sql VS c# Создал sql-Запрос , а вижуалка при запуске пишет что неверен формат строки запроса! Вот фрагмент этого кода! Code: public bool DoNewBook(Guid ID,Guid UserID,string NameBook, DateTime DateStart ) { string vall = String.Format("INSERT INTO UsersBooks"+"ID , UserID , NameBook , DateStart "+"VALUES({'0'},{'1'},{'2'},{'3'})",ID,UserID,NameBook,DateStart); bool flagres = false; using (SqlConnection connection = new SqlConnection(connect)) { SqlCommand comanda = new SqlCommand(vall, connection); try { connection.Open(); if (comanda.ExecuteNonQuery() == 1) flagres = true; } catch { } } в чем проблема?
Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.ReadLine(); var req = (HttpWebRequest)WebRequest.Create("http://google.com"); var resp = (HttpWebResponse)req.GetResponse(); Console.WriteLine(resp.Cookies.Count);//почему здесь 0? Console.WriteLine(resp.Headers["Set-Cookie"]);//куча куков, шо за нах? Console.ReadLine(); } } } Почему куки не попадают в cookies? Заранее спасибо.
Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace ConsoleApplication1 { class Program { private CookieContainer cookie = new CookieContainer(); static void Main(string[] args) { Console.ReadLine(); var req = (HttpWebRequest)WebRequest.Create("http://google.com"); req.CookieContainer = cookie; var resp = (HttpWebResponse)req.GetResponse(); Console.WriteLine(resp.Cookies.Count);//почему здесь 0? Console.WriteLine(resp.Headers["Set-Cookie"]);//куча куков, шо за нах? Console.ReadLine(); } } } Как то так
c# Подскажите, как лучше реализовать метод который бы возвращал название базового типа обьекта ? Конечно, можно и так... Code: public static string _objectTypeName(object obj) { string szResult = string.Empty; TypeCode typeID = Type.GetTypeCode(obj.GetType()); switch (typeID) { case TypeCode.Boolean: szResult = "Bool"; break; case TypeCode.Byte: szResult = "Byte"; break; case TypeCode.Char: szResult = "Char"; break; case TypeCode.DateTime: szResult = "DateTime"; break; case TypeCode.DBNull: szResult = "DBNull"; break; case TypeCode.Decimal: szResult = "Decimal"; break; case TypeCode.Double: szResult = "Double"; break; case TypeCode.Empty: szResult = "Empty"; break; case TypeCode.Int16: szResult = "Int16"; break; case TypeCode.Int32: szResult = "Int32"; break; case TypeCode.Int64: szResult = "Int64"; break; case TypeCode.Object: szResult = "Object"; break; case TypeCode.SByte: szResult = "SByte"; break; case TypeCode.Single: szResult = "Single"; break; case TypeCode.String: szResult = "String"; break; case TypeCode.UInt16: szResult = "UInt16"; break; case TypeCode.UInt32: szResult = "UInt32"; break; case TypeCode.UInt64: szResult = "UInt64"; break; default: szResult = "UNKNOWN TYPE"; break; } return szResult; } Может можно сразу получить название, а не пилить switch ? Заранее благодарю.
Спс, не додумался попробовать . --------------------------- Code: public static string _objectTypeName(object obj) { Type objType = obj.GetType(); return objType.Name; }
Здравствуйте, у меня такая проблемка: имеется 24 Групбокса, рандомно должен выбратся один из них, некоторое время "посветить", и опять же другой бокс рондомно выбратся.... Вопрос можно ли вообще Групбоксы рандомно выбрать, или это только для чисел?
Создайте массив groupbox-ов, выберите рандомно число R от 0 до 23, и возьмите groupbox из массива по рандомному индексу R.
Размести их на каком-то контроле(Panel например), а затем выбирай случайный из Control.ControlCollection .
Есть программа (и исходники) которая расшифровывает распаковывает некоторые xml файлы а вот как сделать по ней обратный процесс чтобы также шифровала паковала я в C# ноль прошу подсказать алгоритм как она работает в идеале сделать шифровку по исходникам ниже исходники и примеры xml которые расшифровывает программа
Только начал ковырять java и вот банальный пример не хочет работать. PHP: class tree{ int age; String name; int length; public static void main(String args[]) { tree AppleTree; AppleTree = new tree(); AppleTree.age = 12; AppleTree.name = 'Яблоня'; } } Ругается на строчку AppleTree.name = 'Яблоня'; invalid character constant А у автора все работает.В чем дело?