DataGramsocket Übertragungsproblem im Internet (IPs für Voip)

athikka

Aktives Mitglied
Hallo liebe Java-Forum Gemeinde!


Ich habe ein Problem was UDP (Datagramsockets) angeht.

Und zwar baue ich gerade einen VoiceOverIP chat mit UDP

Das ganze funktioniert schon ganz gut - solange es local läuft (Server: localhost, Client: localhost) - also alles auf einem rechner.

Nun habe ich aber einen Rechner der als Server fungiert und eine feste IP hat (im Internet), und zwei Clients die normal im Internet hängen (ohne statische IP), die sich aber zum Server verbinden können, der dann die Daten immer brav an den jeweils anderen Client weiterleitet.

Das Problem ist nun: Der Text-Chat geht über TCP (Sockets), aber wenn ich wen anrufen will, über UDP (Geschwindigkeitswegen)

Ich versende immer Klassen (Serialisiert) per UDP (Paketgröße ist fix mit 1201 Bytes).


Wie gesagt, Lokal geht es wunderbar, aber sobald ich diese Verbindung übers Internet mache (mit meinem Server) geht es ins nichts (ich sende und sende aber es kommt nichts an obwohl der Server erfolgreich weiterleitet.

Die Frage ist nun, wie ich die einzelnen Pakete an die richtige Client-Adresse weiterleiten kann (mit Socket.getInetAdress()) geht es auf alle Fälle ins nichts - ich denke mal das ist weil die IP der Clients nicht statisch ist.

Wie bekomme ich die "Ziel"-IPs an die ich die Daten weiterleiten soll? Wie gesagt die clients sind auch über TCP mit dem Server verbunden - also schriftlich chatten kann ich - mir fehlt einfach die IP der Clients damit ich die UDP-Pakete richtig versenden kann, damit sie eben auch bei den Clients ankommen.

Also wie komme ich an die IP, an die ein Socket per OutputStream sendet? Das wäre doch des Rätsels lösung...

Kann mir da wer helfen?

Vielen Dank schonmal im Voraus,
Niko
 
T

tuxedo

Gast
mir fehlt einfach die IP der Clients damit ich die UDP-Pakete richtig versenden kann, damit sie eben auch bei den Clients ankommen.

Der Client könnte dem Server ja seine IP mitteilen. Dann wüsste der Server wohin er das Paket schicken muss. Allerdings ist das nicht ganz trivial da der Client ja selbst nicht unbedingt weiß wie er ans Internet über welchen Router angeschlossen ist.

Warum sendest du die VoIP Daten nicht per TCP? Wenn du den Nagle-Algo ausschaltest kommst du auf Latenzzeiten die UDP (fast) gleichkommen.

Hab ende 2007 im Rahmen meiner Diplomarbeit ebenfalls mit Audioübertragung experimentiert. Da hab ich der einfachheit wegen TCP benutzt. Mit einem passenden, kleinen Codec (Speex) konnte das Resultat trotz TCP durchaus mit Tools wie Teamspeak (damals noch Version 2) mithalten.

- Alex
 

athikka

Aktives Mitglied
Hallo

habe gerade den netzwerkverkehr mit Wireshark analysiert, und es sieht so aus, als ob der Server die UDP pakete zwar sendet, sie jedoch nur beim router ankommen (ip adresse vom router)... und es von dort nicht weiter in die tiefe geht.

Ein freund von mir hat mir geraten, mit UPnP anzuschauen - das würde angeblich dieses Problem beheben (Portweiterleitung)..

kennt sich da wer aus?
 

Empire Phoenix

Top Contributor
Lass upnp, das würde gehen (so bei jedem 1 millionsten router der das unterstützt, aber glaub mir du willst das nciht.)

Dein Problem der Router weiß nicht wohin die eingehenden Packete sollen
Versuch es
a) einfach portweiterleitung einstellen,
b) UDP Portholing
c) nur verbindungen vom Client zum derver aufbauen(ist bei udp bisschen falsch formuliert, aber der client sendet das erste packet richtung server (zb beim anmelden), und danach solange leerlauf ab und zu ein keepalive senden.
 

athikka

Aktives Mitglied
kann es leicht sein dass der Fehler daran liegt (dass kein UDP paket durchkommt), dass ich die INetAdress der TCP verbindung benutze?

sollte ich also eine art "anmeldung" machen? habs noch nicht probiert da ich dachte dass ich mir die ip einfach aus der TCP verbindung raushole (die ja funktioniert)...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A ffffff @ DatagramSocket.receive Netzwerkprogrammierung 5
E Socket DatagramSocket, wieviele Packete sind in der Receive Queue? Netzwerkprogrammierung 5
E DatagramSocket rausfinden ob recive möglich ohne zu blocken Netzwerkprogrammierung 10
M Paralleler Server mit DatagramSocket Netzwerkprogrammierung 2
Kr0e DatagramSocket und UDP Netzwerkprogrammierung 3
E MulticastSocket / DatagramSocket - Time-To-Live Netzwerkprogrammierung 7
R DatagramSocket Problem mit Verabeitungsgeschwindigkeit Netzwerkprogrammierung 19
M datagramSocket senden u. empangen? Netzwerkprogrammierung 2
P Objekte über DatagramSocket versenden Netzwerkprogrammierung 12
D DatagramSocket Empfangen Textarea Netzwerkprogrammierung 2
J ServerSocket vs. DatagramSocket Netzwerkprogrammierung 2
J DatagramSocket Netzwerkprogrammierung 2
J DatagramSocket Netzwerkprogrammierung 2
D Socket-Verbindungen übers Internet Netzwerkprogrammierung 4
M Erstelltes Programm über Internet Browser ausführen Netzwerkprogrammierung 26
V Einfachen Javaserver über das Internet erreichbar machen Netzwerkprogrammierung 2
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
M Kommunikation übers Internet Netzwerkprogrammierung 9
T Suche Internet-Lektüre Netzwerkprogrammierung 0
E Java Server übers Internet erreichen Netzwerkprogrammierung 4
T Socket Methoden über Internet aufrufen Netzwerkprogrammierung 1
S Socket Kommunikation über Internet Netzwerkprogrammierung 1
S Programmieren mit dem Internet Netzwerkprogrammierung 4
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
A Computer über Internet verbinden Netzwerkprogrammierung 12
J Komplexes Netzwerk-Spiel im Internet Netzwerkprogrammierung 13
N RMI Einstellungen für "übers Internet" Netzwerkprogrammierung 8
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
J Socket Chatserver aus dem Internet nicht erreichbar Netzwerkprogrammierung 19
M Modem, serielle Schnittstelle. Verbindungsaufbau ins Internet. Netzwerkprogrammierung 6
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
F Bilder aus Internet downloaden Netzwerkprogrammierung 12
H Eine Mac-Adresse übers Internet ermitteln Netzwerkprogrammierung 2
E Zwei PCs über das Internet miteinander verbinden? Netzwerkprogrammierung 3
E Socketverbindung über das Internet - Timeout? Netzwerkprogrammierung 28
Y client server socket via internet Netzwerkprogrammierung 8
E Java über Socket ins Internet? Netzwerkprogrammierung 4
eLogic Download aus Internet Netzwerkprogrammierung 18
Y server client socket verbindung übers internet aufbauen Netzwerkprogrammierung 8
J HTTP Java Client / Server Internet - Webshare ?! Netzwerkprogrammierung 9
C Java und das Internet Netzwerkprogrammierung 14
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
M Socket JFileChooser übers Internet Netzwerkprogrammierung 32
trash HTTP Internet Connection bei Proxy ?! Netzwerkprogrammierung 3
J Socket Erreichbarkeit eines Java Servers (Socket-Lösung) über das Internet Netzwerkprogrammierung 3
E Socket Client-Applikation mit GUI für Internet IO-Platine Netzwerkprogrammierung 2
U Aktivierung via Internet Netzwerkprogrammierung 8
H Verbindungsproblem über das Internet Netzwerkprogrammierung 9
C Dateigröße einer Datei im Internet ermitteln Netzwerkprogrammierung 2
T Java Socket und ServerSocket über Internet-IP? Netzwerkprogrammierung 9
T Verbindung über das Internet Netzwerkprogrammierung 2
B Bibliothek, um Eckdaten zur Internet-Verbindung rauszufinden Netzwerkprogrammierung 2
F ServerSocket im internet zugänglich machen Netzwerkprogrammierung 15
G testen ob Verbindung ins internet besteht Netzwerkprogrammierung 4
S Chat aufs Internet ausweiten Netzwerkprogrammierung 5
G ProxySettings aus Internet Explorer lesen Netzwerkprogrammierung 8
S Netzwerk übers Internet Netzwerkprogrammierung 30
L Multicast im Internet? Netzwerkprogrammierung 3
conan2 Ordner im Internet Netzwerkprogrammierung 2
Z RMI über Internet Netzwerkprogrammierung 3
G RMI über internet, fettes problem Netzwerkprogrammierung 8
B Internet blocken Netzwerkprogrammierung 14
H Dateigröße übers Internet Netzwerkprogrammierung 3
C Sockets über Internet Netzwerkprogrammierung 10
C Serverzugriff über Internet, Server in anderem Bussystem Netzwerkprogrammierung 9
B crawler und volltext suche im internet Netzwerkprogrammierung 2
Z automatische einwahl ins internet Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben