blob: bba7596e709799e94c70e20ca677db773ee77b6b [file] [log] [blame]
Jeff Thompson47eecfc2013-07-07 22:56:46 -07001/**
2 * @author: Jeff Thompson
3 * See COPYING for copyright and distribution information.
Jeff Thompson3b3aabf2013-06-21 16:50:20 -07004 */
5
6#include <cstdlib>
7#include <sstream>
8#include <iostream>
Jeff Thompson22552902013-07-07 21:26:20 -07009#include <ndn-cpp/Interest.hpp>
Jeff Thompson0d567da2013-07-14 22:10:21 -070010#include <ndn-cpp/c/network/TcpTransport.h>
Jeff Thompson3b3aabf2013-06-21 16:50:20 -070011
12using namespace std;
13using namespace ndn;
14
Jeff Thompson22552902013-07-07 21:26:20 -070015unsigned char Interest1[] = {
Jeff Thompson7afc98e2013-06-27 14:33:53 -0700160x01, 0xd2,
17 0xf2, 0xfa, 0x9d, 0x6e, 0x64, 0x6e, 0x00, 0xfa, 0x9d, 0x61, 0x62, 0x63, 0x00, 0x00,
Jeff Thompson06f824a2013-07-08 17:14:30 -070018 0x05, 0x9a, 0x9e, 0x31, 0x32, 0x33, 0x00,
Jeff Thompson7afc98e2013-06-27 14:33:53 -070019 0x05, 0xa2, 0x8e, 0x34, 0x00,
20 0x03, 0xe2,
21 0x02, 0x85, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
22 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
23 0x00,
Jeff Thompson22552902013-07-07 21:26:20 -070024 0x02, 0xda, 0xfa, 0x9d, 0x61, 0x62, 0x63, 0x00, 0xea, 0x00, 0x00,
Jeff Thompson22552902013-07-07 21:26:20 -070025 0x05, 0xaa, 0x8e, 0x31, 0x00,
26 0x02, 0xfa, 0x8e, 0x34, 0x00,
27 0x02, 0xd2, 0x8e, 0x32, 0x00,
28 0x03, 0x82, 0x9d, 0x01, 0xe0, 0x00, 0x00,
29 0x02, 0xca, 0xb5, 0x61, 0x62, 0x61, 0x62, 0x61, 0x62, 0x00,
300x00,
Jeff Thompson7afc98e2013-06-27 14:33:53 -0700311
32};
33
Jeff Thompson3b3aabf2013-06-21 16:50:20 -070034/*
35 *
36 */
Jeff Thompson7afc98e2013-06-27 14:33:53 -070037int main(int argc, char** argv)
38{
39 try {
Jeff Thompson22552902013-07-07 21:26:20 -070040 Interest interest;
Jeff Thompson0d567da2013-07-14 22:10:21 -070041#if 0
Jeff Thompson22552902013-07-07 21:26:20 -070042 interest.decode(Interest1, sizeof(Interest1));
43 cout << "Interest name " << interest.getName().to_uri() << endl;
Jeff Thompson06f824a2013-07-08 17:14:30 -070044 cout << "Interest minSuffixComponents " << interest.getMinSuffixComponents() << endl;
Jeff Thompson8238d002013-07-10 11:56:49 -070045 cout << "Interest publisherPublicKeyDigest length " << interest.getPublisherPublicKeyDigest().getPublisherPublicKeyDigest().size() << endl;
Jeff Thompsonfe556862013-07-09 13:52:55 -070046 cout << "Interest excludeEntryCount " << interest.getExclude().getEntryCount() << endl;
Jeff Thompson5a5e8b72013-07-11 14:28:03 -070047 cout << "InterestLifetimeMilliseconds " << interest.getInterestLifetimeMilliseconds() << endl;
Jeff Thompson0d567da2013-07-14 22:10:21 -070048#endif
Jeff Thompson2fb4b1b2013-07-01 15:10:43 -070049
Jeff Thompson1f3f5172013-07-01 19:02:36 -070050 vector<unsigned char> encoding;
Jeff Thompson22552902013-07-07 21:26:20 -070051 interest.encode(encoding);
Jeff Thompson06f824a2013-07-08 17:14:30 -070052 cout << "Interest encoding length " << encoding.size() << " vs. sizeof(Interest1) " << sizeof(Interest1) << endl;
Jeff Thompson0d567da2013-07-14 22:10:21 -070053
54 struct ndn_TcpTransport transport;
55 ndn_TcpTransport_init(&transport);
56 ndn_Error error;
57 if (error = ndn_TcpTransport_connect(&transport, (char *)"E.hub.ndn.ucla.edu", 9695))
58 return error;
59 if (error = ndn_TcpTransport_send(&transport, &encoding[0], encoding.size()))
60 return error;
Jeff Thompson06f824a2013-07-08 17:14:30 -070061
Jeff Thompson0d567da2013-07-14 22:10:21 -070062 unsigned char buffer[1000];
63 unsigned int nBytes;
64 if (error = ndn_TcpTransport_receive(&transport, buffer, sizeof(buffer), &nBytes))
65 return error;
66
67 for (int i = 0; i < nBytes; ++i)
68 printf("%02X ", (unsigned int)buffer[i]);
69
70#if 0
Jeff Thompson06f824a2013-07-08 17:14:30 -070071 Interest reDecodedInterest;
72 reDecodedInterest.decode(encoding);
73 cout << "Re-decoded Interest name " << reDecodedInterest.getName().to_uri() << endl;
74 cout << "Re-decoded Interest minSuffixComponents " << reDecodedInterest.getMinSuffixComponents() << endl;
Jeff Thompson8238d002013-07-10 11:56:49 -070075 cout << "Re-decoded Interest publisherPublicKeyDigest length " << reDecodedInterest.getPublisherPublicKeyDigest().getPublisherPublicKeyDigest().size() << endl;
Jeff Thompsonfe556862013-07-09 13:52:55 -070076 cout << "Re-decoded Interest excludeEntryCount " << reDecodedInterest.getExclude().getEntryCount() << endl;
Jeff Thompson5a5e8b72013-07-11 14:28:03 -070077 cout << "Re-decoded InterestLifetimeMilliseconds " << reDecodedInterest.getInterestLifetimeMilliseconds() << endl;
Jeff Thompson0d567da2013-07-14 22:10:21 -070078#endif
Jeff Thompson7afc98e2013-06-27 14:33:53 -070079 } catch (exception &e) {
Jeff Thompson8b666002013-07-08 01:16:26 -070080 cout << "exception: " << e.what() << endl;
Jeff Thompson7afc98e2013-06-27 14:33:53 -070081 }
Jeff Thompson3b3aabf2013-06-21 16:50:20 -070082 return 0;
83}