2 UDP und TCP Fragen
Übersicht

![]() |
Kernle 32DLLBetreff: 2 UDP und TCP Fragen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi !
Ich wollte euch mal was fragen,undzwar bastle ich gerade an einem Internetspiel,bzw, einem Spiel das man im Internet spielen kann. Bisher bin ich noch nicht sehr weit gekommen,und bastle gerade an der übertragung der Daten. Doch genau das kann ich nicht testen,da ich hier in einem Lan hänge, und alle PC´s mit denen ich es hier halt testen könnte die gleiche IP haben ![]() Nun,also könnte vielleicht mal jemand testen ob folgendes läuft ? : Code: [AUSKLAPPEN] Global Host$ Global IP$ Global IP2$ Global XCord# Global YCord# Global ZCord# Global Objekte ;--------------------------------------- is_online=OpenTCPStream("kernel32dll.milten.lima-city.de",80) If is_online req$="IP.php" ; Request an das Serverscript schicken WriteLine is_online,"GET /"+req$+" HTTP/1.1" WriteLine is_online,"Host: "+ "kernel32dll.milten.lima-city.de" WriteLine is_online,"User-Agent: daten" WriteLine is_online,"Accept: */*" WriteLine is_online,"" ; Daten empfangen For i=1 To 8 ; Header überlesen trash$=Trim(ReadLine(is_online)) Next IP3$=Trim(ReadLine(is_online)) CloseTCPStream is_online EndIf ;--------------------------------------- ;--------------------------------------------- Graphics3D 800,600,32,2 SetBuffer = BackBuffer() ;--------------------------------------------- camera=CreateCamera() CameraRange camera,1,10009 PositionEntity camera,0,0,-16 ;--------------------------------------------- Objekt = CreateCube () Host$=Input$("Hostmodus ? (1 = an,0 = aus):") ;IP$ = selber ;IP2$ = der andere ;--------------------------------------- If Host$ = 1 ;--------------------------------------- Print "geben sie die Ip ein mit der sie verbinden wollen:" Print "(ihre IP ist:" + IP3$ + " [Achtung: Internet-IP und nicht Lan-IP] ) IP2$=Input$("") Print "connecting..." sendstream=CreateUDPStream(4001) Repeat If KeyDown (205) XCord# = Xcord# + 1 EndIf If KeyDown (203) XCord# = Xcord# - 1 EndIf If KeyDown (200) ZCord# = Zcord# + 1 EndIf If KeyDown (208) ZCord# = Zcord# - 1 EndIf WriteLine(sendstream,XCord#) WriteLine(sendstream,YCord#) WriteLine(sendstream,XCord#) SendUDPMsg sendstream,IP2$ PositionEntity Objekt,XCord#,YCord#,ZCord# RenderWorld Flip Until KeyHit (1) ;--------------------------------------- Else ;--------------------------------------- Print "geben sie die IP ein mit der sie verbinden wollen:" Print "(ihre IP ist:" + IP3$ + " [Achtung: Internet-IP und nicht Lan-IP] ) IP2$=Input$("") Print "connecting..." Readstream=CreateUDPStream(4000) Repeat egal = RecvUDPMsg (readstream) XCord#=ReadLine$ (Readstream) YCord#=ReadLine$ (Readstream) ZCord#=ReadLine$ (Readstream) PositionEntity Objekt,XCord#,YCord#,ZCord# RenderWorld Flip Until KeyHit (1) ;--------------------------------------- EndIf ;--------------------------------------- Es kommt nicht drauf an den Code zu verstehen,ich muss nur wissen ob es läuft. Gut,also soviel dazu.Nun etwas anderes: .... Ich möchte eine Auto-Update funktion in mein Spiel einbauen,also das man nach wunsch beim starten des Spiels nach updates für das Spiel sucht und runterläd. Wie realisiere ich das ? Ich dachte an folgendes: Ich habe 2 Exen im Hauptverzeichniss des Spiels: Start.exe und Game.exe Wenn man Start.exe startet,connectet das Programm zu einer Textdatei im Internet,in der die neuste Versionsnummer steht. Dann wird geprüft ob die dort angegebene Versionsnummer neuer ist. Wenn nicht,wird Game.exe,also das Spiel gestartet.Wenn doch,läd das Programm aus dem Verzeichniss "Update" auf meinem Server alle Daten runter und legt sie im Hauptverzeichniss des Spiels ab. Start.exe wird natürlich nicht geupdated. Danach wird das Spiel beendet. Noch eine Sache: Start.exe bezieht die eigene Versionsnummer aus einer im Verzeichniss liegenden Version.dat,die beim update auch geupdated wird. Nun,ich will jetzt keinen Code haufen,nur ideen,befehle,ect. wie ich das lösen könnte.Das Update muss nicht schnell sein,hauptsache es funktioniert ! Gruß: Kernle PS: Phu...das war viel arbeit das alles zu schreiben... |
||
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog] Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89 Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009 |
NetPad |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aaaalso....
1. selbstverständlich haben in einem lan nicht alles die selbe IP! du meinst dass sie im internet die selbe IP haben, jedoch liegt das an dem router. wenn du in der eingabeaufforderung "ipconfig" eingibst siehst du die IPs. 2. das mit den Updates finde ich keine gute idee. solche spiele sind eigentlich selten zu updaten. falls doch, sollte sich der user selbst informieren. falls du doch unbedingt so etwas einbauen willst, musst du z.b über tcp auf port 80 eine http verbindung herstellen und dann mit get die text datei anfordern. die informationen können dann ausgewertet werden. falls es zu updaten wäre, öffnest du einfach ein fenster des standartbrowser mit der url des updates. grs NP |
||
![]() |
Kernle 32DLL |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das oben genannte Script stellt selbstständig die
eigene IP,mithilfe einer PHP Datei im Internet fest. Selbst ist der mann ![]() Die Idee,das dann ein brwoserfenster zum update geöffnet wird (oder man da halt einen Link kriegt) finde ich gut.Ich denke das werde ich so machen ![]() |
||
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog] Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89 Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009 |
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok hier kommt der code zum datentransfer den du(kernel) im Blitzchat gefordert hast ![]() Code: [AUSKLAPPEN] ;###################### Senden =1 ;1=schicken, sonst empfangen file$ = "test.exe" ;zu verschickende datei Serverip$ = "127.0.0.1" ;###################### ;Datei verschicken If Senden = 1 Then tcp = CreateTCPServer(8000) Print "Warten ..." Repeat strStream=AcceptTCPStream(tcp) Until strStream Print "Verbindung wurde aufgebaut..." datei_verschicken = ReadFile(file$) bank=CreateBank(1000) time = MilliSecs() WriteString strStream, file$ ;Dateiname schicken Repeat n=ReadBytes(bank,datei_verschicken,0,1000) ;es werden immer 1000 bytes in die bank geschrieben und dann ;verschickt, die zahl kannst du ändern, ist egal WriteBytes bank,strStream,0,n Until n<>1000 CloseTCPServer tcp Print "Uploadzeit: " + (MilliSecs()-time)/1000 +" Sekunden." WaitKey EndIf ;Datei empfangen If Senden <> 1 Then tcp = OpenTCPStream(Serverip$ ,8000) If tcp Then bank=CreateBank(1000) time = MilliSecs() filename$ = ReadString (tcp) datei = WriteFile(filename$+".tmp") ;das .tmp hab ich nur dran gehängt falls du am gleichen pc ;testen willst (du kannst ja nicht die orginal datei übers ;schreiben (oder lass es in einen andern ordner schreiben) Repeat n=ReadBytes(bank,tcp,0,1000) WriteBytes bank,datei,0,n Until n<>1000 FreeBank bank CloseFile datei CloseTCPStream tcp Print "Downloadzeit: " + (MilliSecs()-time)/1000 +" Sekunden." WaitKey EndIf EndIf wenn du fragen hast frag ![]() |
||
Fragt und man wird euch helfen
Das Alternativ BlitzBasic-Forum: FreeCoder Einfach chatten: BlitzChat Code&Text schnell und einfach pasten: FreePasting |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group