Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Посылка UDP пакета серверу н С / 6 сообщений из 6, страница 1 из 1
19.12.2018, 09:10
    #39749944
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посылка UDP пакета серверу н С
Всем привет.

Есть сервер на языке С (платформа intel x86) он принимает по сети UDP пакет такой структуры

typedef struct
{
char proc[30];
char tabname[32];
long id;
long dsnr;
long typ;
} DBEVENT;


Подскажите, как такой пакет корректно посылать со стороны java


--
~PPA() {} //
...
Рейтинг: 0 / 0
19.12.2018, 12:28
    #39750111
Пылинка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посылка UDP пакета серверу н С
PPA,
прямо сишную структуру по UDP передают? Или DatagramPacket в который упакован некий бинарный массив?
...
Рейтинг: 0 / 0
19.12.2018, 12:47
    #39750117
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посылка UDP пакета серверу н С
Пылинка,

Пока не знаю.
Исходный код передачи отсутствует, но он тоже на С
Есть рабочая система + есть исходный код серверной части + дампы WireShark
нужно попробовать написать клиента на Java
...
Рейтинг: 0 / 0
19.12.2018, 15:11
    #39750234
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посылка UDP пакета серверу н С
PPAесть исходный код серверной части + дампы WireShark
Этого более чем достаточно. Формируешь пакет в массиве байт, посылаешь через DatagramSocket. В чём проблема-то?
...
Рейтинг: 0 / 0
19.12.2018, 15:38
    #39750256
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посылка UDP пакета серверу н С
Dimitry SibiryakovВ чём проблема-то?Ну как - в чём.
В надо доку смотреть, аккуратно работать с байтами и их порядком.
Хочется же: вж-у-у-х - и оно уже работает. "Magic"
...
Рейтинг: 0 / 0
24.12.2018, 08:43
    #39752025
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посылка UDP пакета серверу н С
Basil A. Sidorov,

Сделал так:

Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
create or replace and compile java source named udp_channel as
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.DatagramChannel;

public class UDPChannel {

  final private static int UDP_PORT = 2222;
  private static DatagramChannel channel;

  static {
    try {
      channel = DatagramChannel.open();
      channel.socket().bind(new InetSocketAddress(UDP_PORT));
      channel.socket().setSendBufferSize(128);
      channel.configureBlocking(false);
    } 
    catch (Exception e) {
    }
  }
  public static void send(String host, long id) throws Exception {
    try {
      
      byte[] array = {0x68,0x6D,0x69,0x61,0x62,0x77,
                      0x00,0x00,(byte)0x1C,(byte)0xFE,0x12,0x00,(byte)0xA1,0x79,0x47,0x00,0x20,(byte)0xFE,0x12,0x00,0x7D,0x64,
                      0x47,0x00,(byte)0xB8,(byte)0xD0,0x4D,0x00,0x20,(byte)0xFE,0x74,0x65,0x6C,0x5F,0x6F,0x72,0x61,0x5F,
                      0x66,0x6F,0x72,0x6D,0x73,0x00,(byte)0xB8,(byte)0xD0,0x4D,0x00,0x01,0x00,0x00,0x00,0x00,0x10,
                      0x40,0x00,0x01,0x00,0x00,0x00,0x78,(byte)0xD0,0x4D,0x00,(byte)0xC0,0x4F,0x0F,0x00,(byte)0xFF,(byte)0xFF,
                     (byte)0xFF,(byte)0xFF,0x01,0x00,0x00,0x00
                     };
      array[64] = (byte)(id&0xff);
      array[65] = (byte)(id>>8&0xff);
      array[66] = (byte)(id>>16&0xff);
      array[67] = (byte)(id>>24&0xff);

      channel.send(ByteBuffer.wrap(array), new InetSocketAddress(host, UDP_PORT));
    } catch (Exception e) {
     throw e;
    }
  }
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Посылка UDP пакета серверу н С / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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