# alternative zur java udp api?



## Spinner0185 (24. Feb 2010)

Hallo,

ich wollte mal fragen ob jemand einen alternative zur java udp api kennt. 
Des weiteren würd ich gern wissen, da der recieve ja das komplette programm einfrieren lässt, muss ich das ja in einen thread packen. Nur hab ich das problem das ich den thread ja nicht mehr stoppen kann oder? Ich hatte gelesen das es stop() nicht mehr gibt. Gibt es da eine alternative? weil wenn ich zehn packete schicke würde ich gern für 3 sek auf zehn antworten warten und das halt in einen relativ kleinen interval immer wieder. 

vielen dank
spinner0815


----------



## FArt (24. Feb 2010)

> ich wollte mal fragen ob jemand einen alternative zur java udp api kennt.
> Des weiteren würd ich gern wissen, da der recieve ja das komplette programm einfrieren lässt, muss ich das ja in einen thread packen. Nur hab ich das problem das ich den thread ja nicht mehr stoppen kann oder? Ich hatte gelesen das es stop() nicht mehr gibt. Gibt es da eine alternative? weil wenn ich zehn packete schicke würde ich gern für 3 sek auf zehn antworten warten und das halt in einen relativ kleinen interval immer wieder.


Um Alternativen anbieten zu können, ist es sinnvoll zu wissen, was mit dem vorhandenen nicht passt.
Receive lässt das Programm nicht einfrieren, der Thread blockiert.

Sonst: java stop thread socket receive - Google-Suche


----------



## Spinner0185 (24. Feb 2010)

naja wenn keine antwort kommt wartet das recieve ja trotzdem auf eine antwort. und es wäre toll wenn es das nach ungefähr 3 sek nicht mehr tun würde. ich werde mir diesbezgl. den link anschaun den du mir da gepostet hast.
danke dafür

und was die upd alternative angeht. ich wollte nur mal generell wissen ob es welche gibt.


----------



## FArt (24. Feb 2010)

> naja wenn keine antwort kommt wartet das recieve ja trotzdem auf eine antwort. und es wäre toll wenn es das nach ungefähr 3 sek nicht mehr tun würde



DatagramSocket (Java 2 Platform SE v1.4.2)


----------



## Spinner0185 (24. Feb 2010)

nein verdammt. da hab ich wohl nicht gründlich genug geschaut. weil hier überall im forum nur die rede davon war das das recieve blockierend wirkt bin ich nicht davon ausgegangen das es eine möglichkeit gibt  ein timeout zu setzen. 
das ist genau das wonach ich gesucht habe ich danke dir.

aber eine andere api gibts wohl nicht oder


----------



## FArt (24. Feb 2010)

Für pures UDP brauchst du nichts anderes.

Errinerst du dich an meine Frage vorhin? Wieso? Was willst du erreichen? Willst du ein höheres Protokoll über UDP bedienen? Dann suche danach bei Google.


----------



## Spinner0185 (24. Feb 2010)

also bei denic.de gibt es einen möglichkeit den status einer domain zu checke (belegt oder nicht). 
und das funktioniert über udp man schickt halt einen header + xml anhang hin und bekommt einen xml datei zurück (sobald der server bock drauf hat). 

und da wollt ich mal wissen ob es alternativen für udp gibt


----------



## FArt (24. Feb 2010)

Wie wäre es mit einem Google-Kurs?
denic api java - Google-Suche


----------



## Spinner0185 (24. Feb 2010)

ja soweit war ich auch schon. ich wollte das aber direkt per udp machen und nicht die api nutzen. ich komm mit der irgendwie nicht so zurecht wie ich mir das gedacht habe.
ich schaffe es irgendwie nicht mal anhand der api eine einfach anfrage an den server zu senden. deshalb wollt ich das jeztt mit udp machen.


----------



## FArt (24. Feb 2010)

Also, Denic bietet hier nur das beschriebene Protokoll per UDP an. Somit bist du daran gebunden.

Jetzt kannst du das alles Hardcore selber machen oder nutzt das fertige Tool oder zumindest die vorhandenen Ressourcen aus dem Tool. Wenn ich das richtig gesehen habe, liefern die sogar den Sourcecode mit. Jetzt gilt es nur noch die Lizenzbestimmungen der API zu prüfen, es sieht aber so aus, als ob man da recht frei wäre.

Der Aufwand sollte sich also in Grenzen halten.



> ich schaffe es irgendwie nicht mal anhand der api eine einfach anfrage an den server zu senden.


Vielleicht solltest du diesem Problem vorrangig nachgehen, bevor du alles per UDP selber machst... die Doku von Denic sieht jetzt relativ ausführlich aus...


----------



## Spinner0185 (24. Feb 2010)

naja mir kommt es so vor als wenn es einfacher wäre eine anfrage direkt per udp zu senden als wenn ich mich durch die api kämpfe, in der ich, nebenbei bemerkt, nicht mal wüsste wo ich da anfangen sollte.
das einzige problem das ich momentan noch habe ist das ich den header noch basteln muss (bei dem muss ich bit flags setzen). nur wenn ich die setze und zusammen mit den xml daten wegschicke, dann sind doch die bits nicht mehr richtig oder? 
ich meine dann setzt er das doch in zahlen bzw. byte um. oder sollte das dann trotzdem richtig ankommen?


----------



## FArt (24. Feb 2010)

> naja mir kommt es so vor als wenn es einfacher wäre eine anfrage direkt per udp zu senden als wenn ich mich durch die api kämpfe, in der ich, nebenbei bemerkt, nicht mal wüsste wo ich da anfangen sollte.


Das würde denn Sinn einer API ad absurdum führen. Wenn du in der Lage bist, Sourcecode zu lesen, solltest du auch in der Lage sein die relevanten Teile aus dem Tool herausziehen zu können.



> ich meine dann setzt er das doch in zahlen bzw. byte um. oder sollte das dann trotzdem richtig ankommen?


Wer ist er? Wenn DU es richtig machst, kommt es richtig an... wie es richtig geht, sieht man vermutlich bei dem fertigen Tool.


----------

