Mit UDP Daten von einem fremden Server empfangen?
Übersicht

![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, es sendet definitiv etwas anderes.
Das ganze ist eine Multitouch Software. Sie erkennt, wenn ich eine Fläche berühre, da die WebCam dann die Fingerschatten auswertet. Diese Info sendet die Software dann über das sogenannte TUIO (http://mtg.upf.edu/reactable/?tuio) Protokoll, welches über UDP läuft an die Programme. Tja und wenn ich das Ding berühre, verändert sich der Wert bei BB nicht, folglich stimmt da wohl irgendetwas nicht. Ich hätte noch die Option über den C++ - Client, der ja funktioniert die Daten zu empfangen und in eine txt-Datei zu schreiben, die dann von BB ausgewertet werden kann. Dazu müsste ich aber C++ können... Wenn jemand hier gut C++ beherrscht, kann er mir gerne behilflich sein ![]() |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Halt.
Du ließt in meinem Beispiel immernur 4 Bytes aus, wenn eine Nachricht empfangen wird. Aus diesen 4 Bytes wird dann der Float- zusammengebastelt. Es kann gut sein, dass die ersten 4 Bytes einer Nachricht immer gleich sind. Du musst schon die ganze Nachricht, die geschickt wird, auslesen, um ein vernünftiges Ergebnis zu bekommen. ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, wobei das Problem ist, dass ein Wert nicht genug ist.
Es müssen mindestens zwei sein. Nämlich x und y der Berührung. Also äh, ich wüsste nicht, wie man mehr als einen Wert aus einem UDP-Paket rausholen könnte. |
||
![]() |
tedy |
![]() Antworten mit Zitat ![]() |
---|---|---|
öfters readbyte machen ?
Schau dir doch einfach an wie das prog es sendet und weißt du was du lesen musst |
||
01010100 01100101 01000100 01111001 00100000 00111010 01000100 |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, aber ich kann mir nicht anschauen, was das Programm sendet.
Das ist das Problem. Und deshalb weiß ich auch nicht, wonach ich suchen muss... |
||
![]() |
Valnar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Blitz4D hat Folgendes geschrieben: Und deshalb weiß ich auch nicht, wonach ich
Tankbuster hat Folgendes geschrieben:suchen muss... Du musst schon die ganze Nachricht, die geschickt wird, auslesen, um ein vernünftiges Ergebnis zu bekommen.
Da steht die Lösung. Beispiele dafür findest du genug. |
||
![]() |
tedy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Duweißt nicht was das Programm sendet ? Wie willst du es dann lesen?
http://mtg.upf.edu/reactable/?tuio |
||
01010100 01100101 01000100 01111001 00100000 00111010 01000100 |
Gast |
![]() Antworten mit Zitat |
|
---|---|---|
Gut, ich schreib jetzt mal ein Code, der UDP Port 3333 abhört. Ich lese byteweise aus, in C# und co. werden floats anderst gesendet. Daher Byteweise. bis die nachricht zu Ende ist!
Code: [AUSKLAPPEN] Global Seperator$ = "-------------------------------------------------------------------------------------"
SetBuffer BackBuffer() Print "Öffne Stream..." Stream = CreateUDPStream(3333) If Stream = 0 Then Print Seperator$ Print "Port 3333 belegt!" Print "<Enter> zum beenden!" WaitKey End EndIf Print "Stream geöffnet!" Print "Höre Stream ab:" Print "TextBox erstellen..." Origin 5,95 Rect 0,0,200,200,0 Viewport 6,96,198,198 Flip Print "Array erstellen..." Dim MSG$(5,15,1) ; 5 : Vertikal angezeigt ; 10: Senkrecht ; 0: Neu oder nicht 1 Text! For I = 0 To 5 For J = 0 To 15 MSG(I,J,1) = "N/A" MSG(I,J,0) = 0 Next Next Print "Starte Empfangen!" Repeat Cls If RecvUDPMsg(Stream) Then ; Stream abfragen Repeat X = X +1 If X = 6 Then X = 0:Y = Y +1 If Y = 16 Then Y = 0 MSG(X,Y,1) = ReadByte(Stream) ; Auslesen! MSG$(X,Y,0) = 1 Until ReadAvail(Stream) = 0 EndIf ; Arry ausdrucken For I = 0 To 5 For J = 0 To 15 Color 255,255*(Int(MSG$(I,J,0))),0 Text I*30+5,J*13+3,MSG$(I,J,1)+"|" Next Next Flip 0 Until KeyDown(1) End Ich hab den Code extra für dich geschreiben, ich hoffe er geht (getestet). Flitzi |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group