मैं एक बहुस्त्र्पीय समूह कोड का निम्न भाग का उपयोग कर कनेक्ट करने का प्रयास कर रहा हूँ:मल्टीकास्ट - ऐसी कोई युक्ति
int flag_on = 1; /* socket option flag */
struct sockaddr_in mc_addr; /* socket address structure */
char recv_str[MAX_LEN+1]; /* buffer to receive string */
int recv_len; /* length of string received */
char* mc_addr_str; /* multicast IP address */
unsigned short mc_port; /* multicast port */
struct sockaddr_in from_addr; /* packet source */
unsigned int from_len; /* source addr length */
mc_addr_str = ip; /* arg 1: multicast ip address */
mc_port = port; /* arg 2: multicast port number */
/* validate the port range */
if ((mc_port < MIN_PORT) || (mc_port > MAX_PORT)) {
fprintf(stderr, "Invalid port number argument %d.\n",
mc_port);
fprintf(stderr, "Valid range is between %d and %d.\n",
MIN_PORT, MAX_PORT);
exit(1);
}
/* create socket to join multicast group on */
// if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
if ((sock = socket(AF_INET, SOCK_DGRAM,IPPROTO_UDP)) < 0) {
perror("socket() failed");
LOGE("*********Inside Join Multicast -- socket() failed*********");
exit(1);
}
LOGE("Socket value = %d ",sock);
/* set reuse port to on to allow multiple binds per host */
if ((setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &flag_on,
sizeof(flag_on))) < 0) {
perror("setsockopt() failed");
LOGE("*********Inside Join Multicast -- socketopt() failed*********");
exit(1);
}
/* construct a multicast address structure */
memset(&mc_addr, 0, sizeof(mc_addr));
mc_addr.sin_family = AF_INET;
mc_addr.sin_addr.s_addr = htonl(INADDR_ANY);
mc_addr.sin_port = htons(mc_port);
/* bind to multicast address to socket */
if ((bind(sock, (struct sockaddr *) &mc_addr,
sizeof(mc_addr))) < 0) {
perror("bind() failed");
LOGE("*********Inside Join Multicast -- bind() failed*********");
exit(1);
}
/* construct an IGMP join request structure */
mc_req.imr_multiaddr.s_addr = inet_addr(mc_addr_str);
mc_req.imr_interface.s_addr = htonl(INADDR_ANY);
/* send an ADD MEMBERSHIP message via setsockopt */
if ((setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP,
(void*) &mc_req, sizeof(mc_req))) < 0) {
perror("setsockopt() failed");
LOGE("*********Inside Join Multicast -- socketopt2() failed*********");
LOGE("Value of errno is %s",strerror(errno));
exit(1);
}
और त्रुटि मैं प्राप्त हुआ है errno का मूल्य है ऐसा कोई उपकरण है।
मैं इसे ओमैप बोर्ड - जीबी पोर्ट पर प्राप्त करने की कोशिश कर रहा हूं।
क्या आप कृपया मदद कर सकते हैं।
महान उत्तर ने मेरी समस्या का समाधान किया :) धन्यवाद !! – info
नेटवर्क इंटरफ़ेस ढूंढना और समूह में शामिल होना, जो एंड्रॉइड पर मेरे लिए काम करता है। इस 'समूह समूह (समूह)' के बिना त्रुटि संदेश 'इस तरह के डिवाइस' के साथ विफल हो जाएगा। – praneetloke
मेरी समस्या भी हल! धन्यवाद – Semaphor