UDP-Probleme

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Darkbyte

Betreff: UDP-Probleme

BeitragFr, März 30, 2007 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ich habe ein Problem mit einem kleinen Chat Programm um zu schauen waie UDP funktioniert. (Ich weis es ist nicht gut ist ja nur zum testen) erstmal mein code: Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer()



Print "1 = 1."
Print "2 = 2."
Wahl = Input("Bitte Zahl eingeben: ")


IP$ = Input$("IP: ")


If Wahl = 1 Then
sendes = CreateUDPStream(8001)
empfangs = CreateUDPStream(8000)
EndIf

If Wahl = 2 Then
sendes = CreateUDPStream(8000)
empfangs = CreateUDPStream(8001)
EndIf

Repeat
;Nachricht lesen

WaitKey

If IP(IP$) <> 0 Then Antwort$ = ReadLine(empfangs)

Print Antwort$

;Nachricht schreiben
N$ = Input$("Nachricht: ")
WriteLine Senden, N$
SendUDPMsg Senden, IP(IP$), sendes

Until KeyHit(1)

Function IP(IP$)
 A1 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
 A2 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
 A3 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
 A4 = Int(IP$)
 Return (A1 Shl 24) + (A2 Shl 16) + (A3 Shl 8 ) + A4
End Function


Wenn ich nun eine Nachricht schicken will kommt eine fehler meldung. Was mache ich falsch? schonmal danke für die Antworten

ZaP

BeitragFr, März 30, 2007 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde nicht Prüfen ob die IP ungleich null ist, sondern das "Postfach":

Code: [AUSKLAPPEN]
If RecvUDPmsg(DeinStream)
nachricht$ = readline(DeinStream)
EndIf
Starfare: Worklog, Website (download)
 

Darkbyte

Betreff: -

BeitragFr, März 30, 2007 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
man muss doch am anfang die IP eingeben dann habe ich doch die IP adresse zum senden oder?
 

Darkbyte

Betreff: -

BeitragSa, März 31, 2007 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
weis sonst noch jemand etwas?

ZaP

BeitragSo, Apr 01, 2007 9:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Du brauchst die IP nur um dem Stream zu sagen wohin er senden soll.
Mit RecvUDPmsg() kannst du nachrichten empfangen (am besten in einer while schleife) und mit sendudpmsg() absenden. -> DA kommt die IP ins spiel. Du kannst natürlich nicht eine Nachricht ins Internet schieben, das würde Chaos geben (wäre aber lustig mit anzusehen o0), sondern musst ein Ziel angeben, die IP.

EDIT: und um zu senden musst du die IP ins INT format umwandeln (die FKT hast du ja schon), wenn du eine Nachricht empfängst, kannst du aus der Nachricht die IP des absenders ablesen, die ist dann schon im INT format.

EDIT2: eigentlich reicht auch ein UDP stream, der empfängt und sendet... lass dich da aber nicht verwirren wenn du mit 2en besser klarkommst.
Starfare: Worklog, Website (download)
 

Darkbyte

BeitragSo, Apr 01, 2007 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wäre es vieleicht möglich das du mir einen Beispiel code schreiben könntest damit ich mit das besser vorstellen kann?

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group