<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18702"><LINK rel=stylesheet 
href="BLOCKQUOTE{margin-Top: 0px; margin-Bottom: 0px; margin-Left: 2em}"></HEAD>
<BODY style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt">
<DIV><FONT size=2 face=Verdana>I use live555 for a multicast server.I use my 
client program to connect to the live555 16 times at 
one operation.</FONT></DIV>
<DIV><FONT size=2 face=Verdana>After openning and closing my client program,the 
live555 show errors:</FONT></DIV>
<DIV> </DIV>
<DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50822, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50824, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50826, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50828, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50830, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50832, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50834, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50836, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50838, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50840, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50842, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50844, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50846, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50848, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50850, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50852, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50854, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50856, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50858, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50860, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50862, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50864, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50866, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50868, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50870, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50872, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50874, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50876, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50878, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50880, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50882, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>16:47:39 Groupsock(-1: 225.1.1.10, 50884, 255): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: Bad file descriptor</DIV>
<DIV>......</DIV>
<DIV> </DIV>
<DIV>I find that after 
"sock = socket(AF_INET, type|SOCK_CLOEXEC, 0); " the sock 
value is -1 and the errno is 24.I creat the rtp groupsock  
like belows  :</DIV>
<DIV>
<DIV> </DIV>
<DIV>static portNumBits initialPortNum = 30000;//note that it is a static var</DIV>
<DIV>struct in_addr destinationAddress ;</DIV>
<DIV>destinationAddress.s_addr = our_inet_addr(fMulticastAddr);//fMulticastAddr comes from client's url</DIV>
<DIV></DIV>
<DIV>Port serverRTPPort(0);</DIV>
<DIV>Port serverRTCPPort(0);</DIV>
<DIV>Groupsock* rtpGroupsock;</DIV>
<DIV>Groupsock* rtcpGroupsock;</DIV>
<DIV>NoReuse dummy(envir()); // ensures that we skip over ports that are already in use</DIV>
<DIV>unsigned i = 1,j=0;</DIV>
<DIV>if(initialPortNum > 65530)//the max port is 65535</DIV>
<DIV>initialPortNum = 30000;</DIV>
<DIV>for (;i<3; initialPortNum += 2) {</DIV>
<DIV>serverRTPPort = initialPortNum;</DIV>
<DIV>j++;</DIV>
<DIV>if(j>10000)//if can't success after 10000 times try,may be there is a error.exit</DIV>
<DIV>{</DIV>
<DIV>fAfterGettingClientData = NULL;</DIV>
<DIV>return;</DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV>rtpGroupsock = new Groupsock(envir(), destinationAddress, serverRTPPort, 255);</DIV>
<DIV>if (rtpGroupsock->socketNum() < 0) {</DIV>
<DIV>envir() << "rtp:" << serverRTPPort<<"\n";</DIV>
<DIV>  delete rtpGroupsock;</DIV>
<DIV>  continue; // try again</DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV>serverRTCPPort = initialPortNum+1;</DIV>
<DIV>rtcpGroupsock = new Groupsock(envir(), destinationAddress, serverRTCPPort, 255);</DIV>
<DIV>if (rtcpGroupsock->socketNum() < 0) {</DIV>
<DIV>envir()<< "rtcp:" << serverRTCPPort<<"\n";</DIV>
<DIV>  delete rtpGroupsock;</DIV>
<DIV>  delete rtcpGroupsock;</DIV>
<DIV>  continue; // try again</DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV>if(i == 1){// success</DIV>
<DIV>fRtpGroupsockAudio = rtpGroupsock;</DIV>
<DIV>fRtcpGroupsockAudio = rtcpGroupsock;</DIV>
<DIV>}else{</DIV>
<DIV>fRtpGroupsockVideo = rtpGroupsock;</DIV>
<DIV>fRtcpGroupsockVideo = rtcpGroupsock;</DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV>//envir() << "serverPortNum:" << initialPortNum << "\n";</DIV>
<DIV></DIV>
<DIV>i++;</DIV>
<DIV>}</DIV>
<DIV> </DIV>
<DIV>I have try many days to resolve this.</DIV>
<DIV>Is there any error,please help me.Tank you very 
much.</DIV></DIV> <FONT size=2 face=Verdana></FONT></DIV>
<DIV align=left><FONT color=#c0c0c0 size=2 face=Verdana>2012-12-19 
</FONT></DIV><FONT size=2 face=Verdana>
<HR style="WIDTH: 122px; HEIGHT: 2px" align=left SIZE=2>

<DIV><FONT color=#c0c0c0 size=2 face=Verdana><SPAN>kingaceck</SPAN> 
</FONT></DIV></FONT></BODY></HTML>