С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Gegurez
2 / 2 / 1
Регистрация: 08.09.2013
Сообщений: 10
1

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

09.09.2013, 12:55. Просмотров 567. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2013, 12:55
Ответы с готовыми решениями:

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

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

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

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

Перевод кода из с C++
Здравствуйте, нужна помощь в переводе кода. Отпишитесь, кто может помочь.

2
onicdr
37 / 36 / 7
Регистрация: 01.08.2013
Сообщений: 106
09.09.2013, 13:41 2
Так и преобразуйте его в тип 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
Gegurez
2 / 2 / 1
Регистрация: 08.09.2013
Сообщений: 10
10.09.2013, 00:20  [ТС] 3
Цитата Сообщение от 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2013, 00:20

Перевод кода из 'VB' в 'C#'
Здраствуыте уважаемые.Есть у меня такой вопросик.Может кто то встречал или уже...

Перевод кода с C++ на C#
Всем доброго времени суток Вот пытаюсь переписать библиотеку написанную на С++...

Перевод кода из C в C#
Можете пожалуйста помочь перевести данный код на языке С в C#? extern unsigned...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru