Я хочу кодировать данные в клиенте C и отправлять их на сервер Java.
#define BUFFERSIZE 100
INTEGER_t clientNumber;
printf("Enter a number :\n ");
scanf("int *",&clientNumber);
Message01_t *message1;
message1 = calloc(1, sizeof(Message01_t));
message1->number = clientNumber;
char buffer[BUFFERSIZE];
size_t bufferLen = sizeof(buffer);
der_encode_to_buffer(&asn_DEF_Message01, message1, buffer, bufferLen);
xer_fprint(stdout, &asn_DEF_Message01, message1);
send( to_server_socket, &message1, sizeof( message1 ), 0 )
Как вывод xer_fprint показать мне
<Message01>
<number>1D:00:00:00:10:00:00:00:00:80:04:00:00:1A:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00...... A VERYYYY LONGGG SEQUENCE OF BYTES....
и на сервере
При декодировании закодированное значение тега в байтовом массиве не совпадает с номером тега этого объекта!
Message01_t
. Чтобы успешно отправить данные на сервер Java, вам необходимо знать, что ожидает сервер Java. Как он узнает, какого типа сообщения? Каковы правила в отношении закодированных значений тегов и номеров тегов? Какой протокол ожидает сервер Java? Я думаю, вам нужно уточнить свой вопрос в ряде областей, прежде чем вы получите какие-либо полезные ответы. Это также может помочь определить используемую вами библиотеку ASN. - person Jonathan Leffler   schedule 12.05.2014