/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
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





Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste