powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Посылка UDP пакета серверу н С
6 сообщений из 6, страница 1 из 1
Посылка UDP пакета серверу н С
    #39749944
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

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

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


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


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

Пока не знаю.
Исходный код передачи отсутствует, но он тоже на С
Есть рабочая система + есть исходный код серверной части + дампы WireShark
нужно попробовать написать клиента на Java
...
Рейтинг: 0 / 0
Посылка UDP пакета серверу н С
    #39750234
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PPAесть исходный код серверной части + дампы WireShark
Этого более чем достаточно. Формируешь пакет в массиве байт, посылаешь через DatagramSocket. В чём проблема-то?
...
Рейтинг: 0 / 0
Посылка UDP пакета серверу н С
    #39750256
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВ чём проблема-то?Ну как - в чём.
В надо доку смотреть, аккуратно работать с байтами и их порядком.
Хочется же: вж-у-у-х - и оно уже работает. "Magic"
...
Рейтинг: 0 / 0
Посылка UDP пакета серверу н С
    #39752025
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Посылка UDP пакета серверу н С
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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