Re: [javagroups-users] Linux problem...
Brought to you by:
belaban
From: <jc...@as...> - 2002-06-13 10:22:55
|
ok i have changed the UDP.java code to this.... (only added some = trace.fatal functions) void createSockets() throws Exception { InetAddress tmp_addr=3Dnull; Trace.fatal("UDP.createSockets()", "1"); send_sock=3Dnew DatagramSocket(); if(bind_addr !=3D null || bind_port > 0) { Trace.fatal("UDP.createSockets()", "2"); if(bind_addr =3D=3D null && bind_port > 0) { Trace.fatal("UDP.createSockets()", "3"); ucast_recv_sock=3Dnew DatagramSocket(bind_port); } else if(bind_addr !=3D null && bind_port > 0) { Trace.fatal("UDP.createSockets()", "4"); ucast_recv_sock=3Dnew DatagramSocket(bind_port, = bind_addr); } } Trace.fatal("UDP.createSockets()", "5"); if(ucast_recv_sock =3D=3D null) { Trace.fatal("UDP.createSockets()", "6"); ucast_recv_sock=3Dnew DatagramSocket(); } local_addr=3Dnew IpAddress(ucast_recv_sock.getLocalPort()); if(ip_mcast) { mcast_sock=3Dnew MulticastSocket(mcast_port); mcast_sock.setTimeToLive(ip_ttl); Trace.fatal("UDP.createSockets()", "7"); // bind_addr not set, try to assign one by default. This is needed on Windows // @todo: replace this code in JDK 1.4 with java.net.NetworkInterface API if(bind_addr =3D=3D null) { Trace.fatal("UDP.createSockets()", "7.1"); InetAddress[] interfaces=3DInetAddress.getAllByName(InetAddress.getLocalHost().getHostA= ddres s()); if(interfaces !=3D null && interfaces.length > 0) bind_addr=3Dinterfaces[0]; } Trace.fatal("UDP.createSockets()", "8"); if(bind_addr !=3D null) mcast_sock.setInterface(bind_addr); Trace.fatal("UDP.createSockets()", "9"); tmp_addr=3DInetAddress.getByName(mcast_addr_name); Trace.fatal("UDP.createSockets()", "10"); mcast_addr=3Dnew IpAddress(tmp_addr, mcast_port); Trace.fatal("UDP.createSockets()", "11"); mcast_sock.joinGroup(tmp_addr); Trace.fatal("UDP.createSockets()", "12"); } Trace.fatal("UDP.createSockets()", "13"); setBufferSizes(); if(Trace.trace) { ............. And the output is this... [root@Merlin protocols]# java org.javagroups.demos.Draw [11:08:32[475]] [INFO] UDP.startWork(): creating sockets and starting threads [11:08:32[589]] [FATAL] UDP.createSockets(): 1 [11:08:32[632]] [FATAL] UDP.createSockets(): 5 [11:08:32[634]] [FATAL] UDP.createSockets(): 6 [11:08:32[671]] [FATAL] UDP.createSockets(): 7 [11:08:32[673]] [FATAL] UDP.createSockets(): 7.1 [11:08:32[675]] [FATAL] UDP.createSockets(): 8 [11:08:32[677]] [FATAL] UDP.up(): exception creating sockets: java.net.SocketException: Cannot assign requested address So its seems that the bin_addr is null and then it cant assign one by default... ----- Original Message ----- From: "Bela Ban" <be...@nm...> To: "Jorge Cust=F3dio" <jc...@as...> Sent: Wednesday, June 12, 2002 7:49 PM Subject: Re: [javagroups-users] Linux problem... > Jorge Cust=F3dio wrote: > > > ok i have located the problem, its on the > > > > .... > > mcast_sock.setInterface(bind_addr) > > .... > > > > so its a problem in the multicast ? maybe some other program is = already > > using it ? > > Check whether you use bind_addr also for unicast sockets > > -- > Bela Ban > Fujitsu Network Communications > (408) 895-1732 > > > |