test_dtls.c 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include "dtls_srtp.h"
  6. void test_handshake(int argc, char* argv[]) {
  7. #if 0
  8. DtlsSrtp dtls_srtp;
  9. UdpSocket udp_socket;
  10. Address local_addr;
  11. Address remote_addr;
  12. if (argc < 2) {
  13. printf("Usage: %s client/server\n", argv[0]);
  14. return;
  15. }
  16. local_addr.ipv4[0] = 192;
  17. local_addr.ipv4[1] = 168;
  18. local_addr.ipv4[2] = 1;
  19. local_addr.ipv4[3] = 110;
  20. remote_addr.ipv4[0] = 192;
  21. remote_addr.ipv4[1] = 168;
  22. remote_addr.ipv4[2] = 1;
  23. remote_addr.ipv4[3] = 110;
  24. if (strstr(argv[1], "client")) {
  25. local_addr.port = 1234;
  26. remote_addr.port = 5677; // 5678 for MNDP
  27. dtls_srtp_init(&dtls_srtp, DTLS_SRTP_ROLE_CLIENT, &udp_socket);
  28. } else {
  29. local_addr.port = 5677; // 5678 for MNDP
  30. remote_addr.port = 1234;
  31. dtls_srtp_init(&dtls_srtp, DTLS_SRTP_ROLE_SERVER, &udp_socket);
  32. }
  33. udp_socket_open(&udp_socket);
  34. udp_socket_bind(&udp_socket, &local_addr);
  35. dtls_srtp_handshake(&dtls_srtp, &remote_addr);
  36. char buf[64];
  37. memset(buf, 0, sizeof(buf));
  38. if (strstr(argv[1], "client")) {
  39. snprintf(buf, sizeof(buf), "hello from client");
  40. printf("client sending: %s\n", buf);
  41. usleep(100 * 1000);
  42. dtls_srtp_write(&dtls_srtp, buf, sizeof(buf));
  43. dtls_srtp_read(&dtls_srtp, buf, sizeof(buf));
  44. printf("client received: %s\n", buf);
  45. } else {
  46. dtls_srtp_read(&dtls_srtp, buf, sizeof(buf));
  47. printf("server received: %s\n", buf);
  48. snprintf(buf, sizeof(buf), "hello from server");
  49. printf("server sending: %s\n", buf);
  50. usleep(100 * 1000);
  51. dtls_srtp_write(&dtls_srtp, buf, sizeof(buf));
  52. }
  53. dtls_srtp_deinit(&dtls_srtp);
  54. #endif
  55. }
  56. void test_reset() {
  57. DtlsSrtp dtls_srtp;
  58. dtls_srtp_init(&dtls_srtp, DTLS_SRTP_ROLE_CLIENT, NULL);
  59. dtls_srtp_deinit(&dtls_srtp);
  60. }
  61. int main(int argc, char* argv[]) {
  62. test_reset();
  63. test_handshake(argc, argv);
  64. return 0;
  65. }