|
| MultiCastSocket - virk dog!! Fra : Trygleren |
Dato : 01-09-02 13:47 |
|
Hej,
jeg har siddet og leget med en chat her i sommerperioden. Den er baseret på
MultiCastSocket.
Mit problem er, at den kun virker på lokale netværk. Den nægter kategorisk
at smide så meget som
en byte ud over internettet (til min ekstraordinært store frustration).
Først troede jeg det var fordi den
(DatagramPacket) kun var sat til at overleve en router, da det jo ikke er
alle routere der understøtte MultiCast.
Så jeg brugte setToLive( ) og satte den til at overleve 50 routers. Det
ændrede slet intet. Jeg forstår virkelig ikke,
hvorfor det ikke virker! Jeg har åbnet firewalls i begge ender og jeg har
også prøvet helt uden - intet resultat...
Er der andre der har eksperimenteret med dette?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Sic gorgiamus allos subjectatos nunc"
Lars Winther
DEN CENTRALE KODE:
//class ChatModule
String besked;
// ******** Metode til afsendelse **********
public void transmit(String besked)
{
try
{
InetAddress tp = InetAddress.getByName("230.230.230.230");//har prøvet en
masse forskellige
MulticastSocket s = new MulticastSocket(11111);//portnummer - som herover
s.setTimeToLive(50);//antal routers
s.joinGroup(tp);
byte [] m = besked.getBytes();//konverter til bytearray
DatagramPacket messageOut = new DatagramPacket(m, m.length, tp,
11111);//opret pakke
s.send(messageOut);//flush - send pakke
}
catch (SocketException e)
{}
catch (IOException e)
{}
}//end metode transmit
//******** Metode til modtagelse - denne køres nonstop i en for(;;)-løkke i
en anden klasse ************
public String recieve()
{
try
{
InetAddress tp = InetAddress.getByName("230.230.230.230");
MulticastSocket s = new MulticastSocket(11111);
s.joinGroup(tp);
//Modtag beskeder
byte[] buffer;
while(true)
{
buffer = null;
buffer = new byte[1000];
DatagramPacket messageIn = new DatagramPacket(buffer,
buffer.length);
s.receive(messageIn);
besked = new String(messageIn.getData());
}
}
catch (SocketException e)
{}
catch (IOException e)
{}
return besked;
}
| |
Jonathan Stein (01-09-2002)
| Kommentar Fra : Jonathan Stein |
Dato : 01-09-02 18:49 |
|
Trygleren wrote:
> Først troede jeg det var fordi den (DatagramPacket) kun var sat til at
> overleve en router, da det jo ikke er alle routere der understøtte MultiCast.
- men du er sikker på, at de routere, du nu skal igennem understøtter det?
M.v.h.
Jonathan
--
Nyt alternativ til egen server: JSP Enterprise hotel med adgang til
Enterprise Java Beans, egen Java Virtual Machine og egen IP-adresse
(giver mulighed for eget SSL-certifikat).
http://www.jsp-hotel.dk/
| |
Trygleren (01-09-2002)
| Kommentar Fra : Trygleren |
Dato : 01-09-02 22:06 |
|
> > Først troede jeg det var fordi den (DatagramPacket) kun var sat til at
> > overleve en router, da det jo ikke er alle routere der understøtte
MultiCast.
>
> - men du er sikker på, at de routere, du nu skal igennem understøtter
det?
Øøøh, nej.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Sic gorgiamus allos subjectatos nunc"
Lars Winther
| |
|
|