static int send_udp_ipv6(int argc,char *argv[])
{
    int ret = 0;
    int first_time = 0;

    int mysocket,len;
    int i=0;
    struct sockaddr_in6 addr;
    int addr_len;
    char msg[200];
    
    if((mysocket=socket(AF_INET6,SOCK_DGRAM,0))<0)
    {
        perror("error:");
        return(1);
    }
    else
    {
        printf("socket created ...\n");
        printf("socket id :%d \n", mysocket);
    }

    addr_len=sizeof(struct sockaddr_in6);
    bzero(&addr,sizeof(addr));
    addr.sin6_family=AF_INET6;

    if ((argc >= 2)&&(argv[1]))
    {
        strcpy(g_ip6_addr.tx_dst_udpv6, argv[1]);
        if ( inet_pton(AF_INET6, g_ip6_addr.tx_dst_udpv6, &addr.sin6_addr) != 1)
        {
            printf("bad dst ipv6 address, dst = %s\n", g_ip6_addr.tx_dst_udpv6);
            return -1;
        }
        printf("dst ipv6 : %s\n", g_ip6_addr.tx_dst_udpv6);
    }
    else
    {
        printf("input dst ipv6 error\n");
        return -1;
    }

    if ( (argc >= 3)&&(argv[2]))
    {
        addr.sin6_port = htons(atoi(argv[2]));
        printf("dst port :%s \n", argv[2]);
    }
    else
    {
        addr.sin6_port=htons(TX_DST_PORT);
        printf("default dst port :%d \n", TX_DST_PORT);
    }

    addr.sin6_scope_id = g_interface_id;
    
    while(1)
    {
        bzero(msg,sizeof(msg));
        len=read(STDIN_FILENO,msg,sizeof(msg));
        if ( len <= 1 )
        {
            continue;
        }
        else
        {
            printf("len = %d, input = %s  strlen(msg)=%d\n", len, msg, strlen(msg));
        }
        
        ret = sendto(mysocket, &msg[0],strlen(msg),0,(struct sockaddr *)&addr,addr_len);
        printf("sendto return = %d\n", ret);
        if( ret < 0 )
        {
            perror("sendto error,");
            return(1);
       }

//        bzero(msg,sizeof(msg));///
//        len=recvfrom(mysocket,msg,sizeof(msg),0,(struct sockaddr *)&addr,(socklen_t*)&addr_len);
//        printf("%d:",i);
//        i++;
//        printf("received msg : %s\n",msg);
    }
}