UDP Prob
Übersicht

![]() |
SmilyBetreff: UDP Prob |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
kann mir bitte jemand bei meinem kleinem Problem helfen? Ich wollte mich jetzt nun auch mal an UDP wagen (ja das ist mein erster versuch ^^) und habe mal schnell ein Prog für client und server gemacht: Client: Code: [AUSKLAPPEN] Getstream = CreateUDPStream(8001)
Sendstream = CreateUDPStream() name$ = Input("name>") ip$ = Input("ip>") Graphics 800,600,16,2 WriteLine sendstream, "JOIN" WriteLine Sendstream, name$ Repeat WriteLine Sendstream, "UPDATE" WriteLine sendstream, MouseX() WriteLine sendstream, MouseY() SendUDPMsg(sendstream,int_ip(ip$),8000) Cls Rect MouseX(), MouseY(), 10, 10 Flip Until KeyHit(1) Function INT_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 Server: Code: [AUSKLAPPEN] Type player
Field x Field y Field ip Field name$ Field lastping End Type CountHostIPs(GetEnv("localhost")) serverip$ = DottedIP(HostIP(1)) Getstream = CreateUDPStream(8000) Sendstream = CreateUDPStream() Graphics 800,600,16,2 Repeat Cls Text 0,0,serverip$ ip = RecvUDPMsg(getstream) If ip Repeat zeile$ = ReadLine(getstream) If zeile$ = "JOIN" player.player = New player player\ip = ip player\name$ = ReadLine(getstream) Print "Neuer Spieler: " + player\name$ End If If Zeile$ = "UPDATE" For player.player = Each player If player\ip = ip Then Exit Next player\x = ReadLine(getstream) player\y = ReadLine(getstream) player\lastping = MilliSecs() End If Until Eof(getstream) End If For player.player = Each player Rect player\x, player\y,10,10 Text player\x, player\y+15, player\name$ Text player\x, player\y+30, DottedIP(player\ip) Text player\x, player\y+45, MilliSecs()-player\Lastping Next Flip ;If ip$ <> 0 Then Print ip$ Until KeyHit(1) Wenn ich auf meinem eigenen PC den server und den Client starte, dann wird der Client auch vom Server erkannt. Dann habe ich das Client-Prog aber mal von einem Freund auf einem anderen Computer ausführen lassen (Der Server lief immer noch bei mir) Aber da hat der Server kein Signal vom Client bekommen. Kann mir bitte jemand sagen, was ich falsch mach? gruß, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
was war das für eine verbindung? LAN, INet, INet mit router etc? | ||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
![]() |
Smokie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du den Port für den Server freigeschaltet hast, dann liegt es daran, dass du 2 Streams pro Client und Server verwendest. Es reicht wenn du nur einen Stream für's senden und empfangen verwendest.
Code: [AUSKLAPPEN] Stream = CreateudpStream(8000) ;... if recvudpmsg(Stream) then writeline Stream,"Empfangen" Sendudpmsg Stream, udpmsgip(stream),udpmsgport(stream) endif Wenn du nur einen Stream benutzt muss du nur den Serverport freischalten. Ansonsten müsste der Client den Port den er zum Empfangen nimmt auch freischalten, und wenn du was größeres mit UDP pprogrammieren willst is das umständlich. Grüße Smokie |
||
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer. Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist ja ersmtal nur ein Testprogramm,
Ich möchte es später noch so ausbauen, dass auch daten vom Server an den Clienten geschickt werden. Laut Robs BB-Kurs brauch ich dafür 2 seperate streams um daten zu senden und zu empfangen. Wie schon gesagt ist diese materie noch relativ neu für mich. Gruß, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Smokie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du brauchst aber nur einen, kannst im Forum suchen da steht's
Grüße |
||
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer. Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok. Ich hab den Code jetzt so:
Client: Code: [AUSKLAPPEN] stream = CreateUDPStream(8001)
name$ = Input("name>") ip$ = Input("ip>") Graphics 800,600,16,2 WriteLine stream, "JOIN" WriteLine stream, name$ SendUDPMsg(stream,int_ip(ip$),8000) Text 0,0,"Warte auf ok vom server..." Flip Repeat IP = RecvUDPMsg(stream) If IP = int_ip(ip$) n$ = ReadLine(stream) End If Until n$ = "OK" Repeat WriteLine stream, "UPDATE" WriteLine stream, MouseX() WriteLine stream, MouseY() SendUDPMsg(stream,int_ip(ip$),8000) Cls Rect MouseX(), MouseY(), 10, 10 Flip Until KeyHit(1) Function INT_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 server: Code: [AUSKLAPPEN] Type player
Field x Field y Field ip Field name$ Field lastping End Type CountHostIPs(GetEnv("localhost")) serverip$ = DottedIP(HostIP(1)) stream = CreateUDPStream(8000) Graphics 800,600,16,2 Repeat Cls Text 0,0,serverip$ ip = RecvUDPMsg(stream) If ip Repeat zeile$ = ReadLine(stream) If zeile$ = "JOIN" player.player = New player player\ip = ip player\name$ = ReadLine(stream) Print "Neuer Spieler: " + player\name$ Print "IP: " + IP + " (" + DottedIP(ip) + ")" WriteLine stream, "OK" SendUDPMsg(stream,ip,8001) End If If Zeile$ = "UPDATE" For player.player = Each player If player\ip = ip Then Exit Next player\x = ReadLine(stream) player\y = ReadLine(stream) player\lastping = MilliSecs() End If Until Eof(stream) End If For player.player = Each player Rect player\x, player\y,10,10 Text player\x, player\y+15, player\name$ Text player\x, player\y+30, DottedIP(player\ip) Text player\x, player\y+45, MilliSecs()-player\Lastping ; If MilliSecs()-player\lastping > 1000 Then Print player\name$ + " ping timeout": Delete player.player Next Flip ;If ip$ <> 0 Then Print ip$ Until KeyHit(1) Leider habe ich immer noch das selbe Problem. Wenn ich es Lokal teste, also server sowohl client auf einem pc, dann geht es. Aber wenn der client von einem anderen computer aus startet gehts nicht. @pixelshooter, ich sitz hier an einem Computer, der mittels LAN mit einem anderen verbunden ist, welcher wiederrum den Internetanschluss hat wenns das war was du wissen wolltest |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Smokie |
![]() Antworten mit Zitat ![]() |
---|---|---|
in BB wird groß und kleinschreibung nicht unterschieden, das heißt im Clientprogramm darfst du nicht IP und ip$ als 2 verschiedene Variablen behandeln.
Und wenn es dann nicht geht, muss du sicher gehen, dass die Ports im Router und in der Firewall freigeschalten sind und das Programm nicht geblockt wird. Grüße Edit: wenn ich das mit den beiden Variablen probiere kommt bei mir immer ein Fehler, weil ich ja sozusagen 2 mal intip für eine Variable anwende |
||
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer. Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
ooooops ![]() noobfehler würd' ich sagen ^^ Eigentlich weis ich das mit den Variablen. Hier hab ich wohl mal nicht aufgepasst ![]() Peinlich, peinlich... |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group