#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "udp_comm_interfaces.h"

#define TEST_SERVER_IP      "10.30.4.122"
#define TEST_SERVER_PORT    15000

int main(int argc, char const *argv[])
{
    int sentBytes = 0;
    struct sockaddr_in serverAddr;
    struct sockaddr_in clientAddr;
    int serverSocket;

    serverAddr.sin_family = AF_INET;
    serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
    serverAddr.sin_port = htons(15000);

    serverSocket = BMSER_Udp_CreateSocket(&serverAddr, sizeof(serverAddr), 0);
    if (serverSocket < 0)
    {
        perror("create udp socket");

        return -1;
    }

    sentBytes = BMSER_Udp_Send(serverSocket, \
                                clientAddr, \
                                "test zero client", \
                                17);
    if (sentBytes <= 0)
    {
        printf("udp send frame failed, sentBytes %d\n", sentBytes);
    }

    clientAddr.sin_family = AF_INET;
    clientAddr.sin_addr.s_addr = inet_addr(TEST_SERVER_IP);
    // clientAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
    clientAddr.sin_port = htons(TEST_SERVER_PORT);

    sentBytes = BMSER_Udp_Send(serverSocket, \
                                clientAddr, \
                                "test udp send", \
                                14);
    if (sentBytes <= 0)
    {
        printf("udp send frame failed, sentBytes %d\n", sentBytes);
    }

    printf("send %d bytes to %s\n", sentBytes, TEST_SERVER_IP);

    return 0;
}

