powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
10 сообщений из 10, страница 1 из 1
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854879
yura-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Разрабатываю клиент-серверное приложения используя именованные каналы связи. Столкнулся с ограничением передаваемых байт в 65535.
Для передачи серверу посылки использую функцию :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public override IAsyncResult BeginWrite(
	byte[] buffer,
	int offset,
	int count,
	AsyncCallback callback,
	Object state
)


Если размер передаваемых байт > 65535, сервер ничего не принимает, хотя параметр count в функции объявлен как int, т.е. до 2 147 483 647.
Как можно обойти данное ограничение? Или может быть это только у меня так? Нигде внятного объяснения не нашел.
...
Рейтинг: 0 / 0
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854892
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura-007Если размер передаваемых байт > 65535, сервер ничего не принимает, хотя параметр count в функции объявлен как int, т.е. до 2 147 483 647.
Как можно обойти данное ограничение?
Почему нигде? я вот в гугл вбил named pipes max buffer size и все нашел. Да, максимум 64кб.

А обойти очень просто - слать порциями по 64кб.
...
Рейтинг: 0 / 0
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854898
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще эта константа должна быть в каком нить Winbase.h (include Windows.h)
...
Рейтинг: 0 / 0
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854909
yura-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
Вбивал я только что-то вроде capacity находил на форумах, но мутноватое разъяснение.
Судя по всему придется действительно порциями слать.
Спасибо.
...
Рейтинг: 0 / 0
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854932
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura-007Судя по всему придется действительно порциями слать.
Почему не WCF с привязкой net.pipe? Зачем самому страдать ерундой, когда добрые дяди из редмонда уже позаботились за вас?
...
Рейтинг: 0 / 0
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854961
yura-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
Потому что такому не обучен, но за подсказку в каком направлении лучше двигаться спасибо! Попробую разобраться.
Да и ещё перед отправкой делаю вот так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        public static Byte[] CompressString(string value)
        {
            Byte[] byteArray = new byte[0];
            if (!string.IsNullOrEmpty(value))
            {
                byteArray = Encoding.UTF8.GetBytes(value);
                using (MemoryStream stream = new MemoryStream())
                {
                    using (GZipStream zip = new GZipStream(stream, CompressionMode.Compress))
                    {
                        zip.Write(byteArray, 0, byteArray.Length);
                    }
                    byteArray = stream.ToArray();
                }
            }
            return byteArray;
        }


на сервере соответственно обратную операцию, но все равно это не спасает.
...
Рейтинг: 0 / 0
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854974
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura-007,
В AsyncCallback вызывай EndWrite, а потом опять BeginWrite со следующей порцией.
...
Рейтинг: 0 / 0
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854977
yura-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,
ок спасибо, так примерно и пытаюсь сделать.
...
Рейтинг: 0 / 0
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854980
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura-007на сервере соответственно обратную операцию, но все равно это не спасает.
Спасает от чего?
...
Рейтинг: 0 / 0
Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
    #38854985
yura-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
"Нужно больше золота"
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Максимальное количество передаваемых байт NamedPipeClientStream функцией BeginWrite.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]