I don't see p2udp_socket_create in the ENet library, so are you trying to mix 2 network libraries?
Ruud On Mon, Jan 7, 2013 at 7:33 AM, enetcub <[email protected]> wrote: > enet-discuss, > > i just be in a spot with send and receiveing BROADCAST packets in enet, > i don't know what is the right way to playing with function > enet_socket_receive > > //sender_code > > P2UdpSocket sck=p2udp_socket_create(P2UDP_SOCKET_TYPE_DATAGRAM); > if(INVALID_SOCKET == sck){ > fprintf(stderr,"error while create sccket\n"); > return(EXIT_FAILURE); > } > //set as broadcast option > p2udp_socket_set_option(sck,P2UDP_SOCKOPT_BROADCAST,1); > //set broadcast addrs > P2UdpAddress p2u_addr; > p2u_addr.host=P2UDP_HOST_BROADCAST; > p2u_addr.port=P2UDP_HOST_TO_NET_16(P2U_PORT); > printf("starting send broadcast packages...\n"); > //gererate notify package > char p2u_act_msg[16]; > strcpy(p2u_act_msg,P2U_ASK_ALIVE_FLAG_MSG); > int p2u_alive_host_count=0; //queue length > while(1){ > p2udp_socket_send(sck,&p2u_addr,&p2u_act_msg,sizeof(p2u_act_msg)); > printf("."); > Sleep(1000); > } > > > //recv_code > > P2UdpSocket sck=p2udp_socket_create(P2UDP_SOCKET_TYPE_DATAGRAM); > if(INVALID_SOCKET == sck){ > fprintf(stderr,"error while create a cscoket\n"); > return(EXIT_FAILURE); > } > p2udp_socket_set_option(sck,P2UDP_SOCKOPT_BROADCAST,1); > P2UdpAddress serv_addr; > serv_addr.host=P2UDP_HOST_ANY; > serv_addr.port=P2UDP_HOST_TO_NET_16(P2U_PORT); > int iret=p2udp_socket_bind(sck,&serv_addr); > if(SOCKET_ERROR == iret){ > fprintf(stderr,"bind socket with error\n"); > p2udp_socket_shutdown(sck,0); > return(EXIT_FAILURE); > } > //host who send broadcast msg > P2UdpAddress host_addr; > char msg_buf[1024]; > int recv_len=0; > while(1){printf("data length:%d\n",recv_len); ------------> this > alway got 0 or -1 ,why? > > recv_len=p2udp_socket_receive(sck,&host_addr,&msg_buf,sizeof(msg_buf)); > if(recv_len <= 0){ > fprintf(stderr,"error receiving data..\n"); > //p2udp_socket_shutdown(sck,0); > //return(EXIT_FAILURE); > //break; //no msg or blcked,just wait > }else{ > static int seq_count=0; > memset(msg_buf+recv_len,'/0',1); > printf("get broadcast message from %u:%d with length:%d has > content:%s seq_id=%d\n", > host_addr.host, > host_addr.port, > recv_len, > msg_buf, > seq_count++); > //check if send is alive flag > if(strcmp(msg_buf,P2U_ASK_ALIVE_FLAG_MSG)){ > printf("i am alive\n"); > }else{ > printf("i am dead\n"); > } > memset(msg_buf,0,sizeof(msg_buf)); > } > Sleep(1000); > } > p2udp_socket_shutdown(sck,0); > > > > enetcub,[email protected] > 2013-01-07 > > _______________________________________________ > ENet-discuss mailing list > [email protected] > http://lists.cubik.org/mailman/listinfo/enet-discuss > >
_______________________________________________ ENet-discuss mailing list [email protected] http://lists.cubik.org/mailman/listinfo/enet-discuss
