Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
22 / 20 / 5
Регистрация: 11.02.2009
Сообщений: 383
1

Sockets + Unicode(RUS)

31.05.2010, 16:41. Показов 1191. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вобщем мне нужно передавать сообщения на русском и на английском я зыке. При использовании AСKII работает только английский язык, при посылке на русском приходят вопросики. Пытаюсь передавать на в Unicode приходит вообще пустой байтовый массив.
Собственно код:

Отсылка:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        
        private void Send(Socket Dist, String Buff)
        {
            Byte[] SendBytes = Encoding.Unicode.GetBytes(Buff);
            SocketError SendResult;
            Dist.BeginSend(SendBytes, 0, Buff.Length, SocketFlags.None, out SendResult, new AsyncCallback(SendCallback), Dist);
            if (SendResult != SocketError.Success)
            {
 
            }   
            
        }
 
        void SendCallback(IAsyncResult Result)
        {
            SocketError Err;
            Socket SockResult = (Socket) Result.AsyncState;
            SockResult.EndSend(Result,out Err);
            if(Err!=SocketError.Success)
            {
 
            }
        }
Прием:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        private void Recive(Socket Sender)
        {
            Byte[] RecvBytes = new Byte[256];
            SocketError Err;
            StateObject State=new StateObject();
            State.buffer = RecvBytes;
            State.workSocket=Sender;
 
            Sender.BeginReceive(RecvBytes, 0, 256, SocketFlags.None, out Err, new AsyncCallback(ReciveCallback), State);
            if (Err != SocketError.Success)
            {
 
            }
        }
        void ReciveCallback(IAsyncResult Result)
        {
            StateObject ResultSock = (StateObject)Result.AsyncState;
            Socket Sender = ResultSock.workSocket;
 
            bool Disconnected = false;
            SocketError Err;
            int Length = Sender.EndReceive(Result, out Err);
 
 
            String Buff = Encoding.Unicode.GetString(ResultSock.buffer, 0, Length); //Вылетает, так как ResultSock.buffer==null
            .......
Как с этим справится?

Добавлено через 1 минуту
ой нет... ошибка не тут((

Добавлено через 8 минут
ой все)) проблемма отпала))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2010, 16:41
Ответы с готовыми решениями:

Как в Qt задать локаль типа "rus-rus" ?
Ну наверное системную локаль... Чтоб это было кроссово.... :) Добавлено через 39 минут Меня...

Как Консольное-приложение в Lazarus сдружить c кодировкой Unicode или Unicode Big Endian или UTF-8
Нужно чтобы Lazarus отображал символы псевдографики желательно все, но в основном вот эти......

Unicode-->ASCII-->Unicode
Суть проблемы: Делаю Java-чат с обработчиком на РНР3, база MySQL. В апплете текст порождается в...

Sockets
Пишу прогу через Socketы. Возможно ли как-нибудь реализовать передачу переменной типа address от...

2
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
31.05.2010, 18:12 2
а решение для потомков?
хотя у меня с UTF8 нормально передаются/читаются русские и английские символы..
0
22 / 20 / 5
Регистрация: 11.02.2009
Сообщений: 383
31.05.2010, 21:24  [ТС] 3
Это я облажался при отправлении:

C#
1
Dist.BeginSend(SendBytes, 0, Buff.Length, SocketFlags.None, out SendResult, new AsyncCallback(SendCallback), Dist);
здесь не Buff.Length нужен, а SendBytes.Length:

C#
1
Dist.BeginSend(SendBytes, 0, SendBytes.Length, SocketFlags.None, out SendResult, new AsyncCallback(SendCallback), Dist);
0
31.05.2010, 21:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2010, 21:24
Помогаю со студенческими работами здесь

Sockets
Добрый вечер. Разрабатываю приложение, потребовалось использование сокетов. Socket-сервером...

Sockets
client.php <?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); ...

Sockets
есть задача:сделать приложение которое будет пинговать дургой компьютер на которомзапущено такое же...

С++ sockets
Всем привет, изучаю сокеты по книгу "Самоучитель игры на WinSock". Все отлично, но есть как всегда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru