Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 1
Регистрация: 08.09.2013
Сообщений: 10

Работа с сокетами: перевод кода с Java

09.09.2013, 12:55. Показов 1035. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В продолжение темы из другой ветки: Приложение управление RGB лентой по wifi
Если коротко остался вопрос в том, что я не то делаю:
Есть рабочий простой пример на яве:
Java
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
27
28
29
30
Socket socket = new Socket(ipAddress, serverPort); // создаем сокет используя IP-адрес и порт сервера.
 
                // Берем входной и выходной потоки сокета, теперь можем получать и отсылать данные клиентом. 
                InputStream sin = socket.getInputStream();
                OutputStream sout = socket.getOutputStream();
 
                // Конвертируем потоки в другой тип, чтоб легче обрабатывать текстовые сообщения.
                DataInputStream in = new DataInputStream(sin);
                DataOutputStream out = new DataOutputStream(sout);
 
                // Создаем поток для чтения с клавиатуры.
                BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
                String line = null;
                System.out.println("Type in something and press enter. Will send it to the server and tell ya what it thinks.");
                System.out.println();
 
                while (true) {
                    line = keyboard.readLine(); // ждем пока пользователь введет что-то и нажмет кнопку Enter.
                    byte mymsg[] = new byte[5];
                    int r = 255;
                    int g = 255;
                    int b = 255;
                    mymsg[0]=0x56;
                    mymsg[1]=(byte)r;
                    mymsg[2]=(byte)g;
                    mymsg[3]=(byte)b;
                    mymsg[4]=-0x56;
                    System.out.println("Sending this line to the server...");
                    out.write(mymsg); // отсылаем введенную строку текста серверу.
                    out.flush();
Пытаюсь тоже самое сделать на C#
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
IPAddress ipAddr = IPAddress.Parse("192.168.10.1");
            IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port);
 
            Socket sender = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
 
            sender.Connect(ipEndPoint);
 
            Console.Write("Соединено!!!\n");
            Console.WriteLine("Сокет соединяется с {0} ", sender.RemoteEndPoint.ToString());
            byte[] msg = new byte[5];
 
            int r = 255;
            int g = 255;
            int b = 255;
            msg[0] = 0x45;
            msg[1] = (byte)r;
            msg[2] = (byte)g;
            msg[3] = (byte)b;
            msg[4] = -0x56;
 
            int bytesSent = sender.Send(msg);
 
            sender.Shutdown(SocketShutdown.Both);
            sender.Close();
в С msg[4] = -0x56 будет ругаться ибо byte 0..255, на яве тип byte -127...128. Использовать sbyte не могу т.к. параметр sender.Send типа byte.
Как можно реализовать это на C#
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2013, 12:55
Ответы с готовыми решениями:

Работа с сокетами
Здравствуйте. Хочу написать класс Server, который бы отвечал за работу с подключающимися...

Работа с сокетами: клиент и сервер в одной программе
Подскажите как лучше реализовать. Есть программа №1 она посылает данные другой программе через...

Работа с сокетами: клиент-сервер работает только из под отладки
Пытаюсь осилить сетевое программирование, отойдя чуть дальше простых примеров. В отладчике работает...

2
39 / 37 / 8
Регистрация: 01.08.2013
Сообщений: 106
09.09.2013, 13:41
Так и преобразуйте его в тип c#
C#
1
2
3
4
5
msg[0] = 0x45 + 127;
            msg[1] = (byte)r;
            msg[2] = (byte)g;
            msg[3] = (byte)b;
            msg[4] = -0x56+127;
0
2 / 2 / 1
Регистрация: 08.09.2013
Сообщений: 10
10.09.2013, 00:20  [ТС]
Цитата Сообщение от onicdr Посмотреть сообщение
Так и преобразуйте его в тип c#
C#
1
2
3
4
5
msg[0] = 0x45 + 127;
            msg[1] = (byte)r;
            msg[2] = (byte)g;
            msg[3] = (byte)b;
            msg[4] = -0x56+127;
Вот тоже была такая мысль но почему то подумал,что не прокатит.
Спасибо попробую...

Добавлено через 10 часов 6 минут
Что то не прокатывает с вышеописанным способом....ищу еще варианты

Добавлено через 25 минут
Забавно я как вопрос тут задам, там сразу во всем сам разбираюсь))
Всем спасибо
Получилось так
C#
1
2
3
4
5
6
7
8
9
byte[] msg = new byte [5];
            int r = 255;
            int g = 255;
            int b = 255;
            msg[0] = 0x56;
            msg[1] = (byte)r;
            msg[2] = (byte)g;
            msg[3] = (byte)b;
            msg[4] = 0xAA;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.09.2013, 00:20
Помогаю со студенческими работами здесь

Работа с сокетами, как сделать весь цикл While одним методом
Вот весь код:byte sendText; string resvStr = string.Empty; int ind = -1;...

Возможна ли в ASP работа с сокетами?
Возможна ли в ASP работа с сокетами? Мне необходимо передать находящемуся на другом сервере...

Работа с сокетами (как называется объект???)
Как из JS Script(VB Script) работать с сокетами? Встречал в инете код типа: var ws = new...

Перевод кода из java на c#
Доброго времени суток, не могли ли вы мне помочь с переводом кода на c# ? вот собственно сам код :...

Перевод кода с Java на C#
Помогите перевести код с Java на C#, код делает следующие...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru