Gamux Game Entwicklung  
     

Left Nav Mit Facebook verbinden Registrieren Lexikon Lexikon Interessengemeinschaften Suchen Heutige Beiträge Alle Foren als gelesen markieren Right Nav

Left Container Right Container
 
Alt 19.07.2008, 15:03   #1 (permalink)
Erfahrener Benutzer
 

Standard Client zu Server TCP Beispiel

Hier habe ich ein kleines Beispiel in AutoIt, wie man Beispielsweise über TCP an einen Server Positionsdaten übermitteln kann. Relativ unausgereift, da es nur P2P ist. Genauere Beschreibung und evtl. eine ausgebaute Version werdn vllt. noch folgen.

Server.au3
autoit Code:
  1. #include <GUIConstantsEx.au3>
  2.  
  3. srv()
  4. Func srv()
  5.     Local $ip = @IPAddress1     ;PC IP        
  6.     Local $port = 1337        ; Irgend ein Port
  7.     Local $sock, $gui, $edit, $c_sock, $recv
  8.  
  9.     TCPStartup()    ; TCP Support starten
  10.  
  11.     $sock = TCPListen($ip, $port)    ; TCP auf IP:PORT zuhören lassen
  12.     If $sock = -1 Then Exit        ; Falls nicht möglich -> srv schließen
  13.  
  14.     $gui = GUICreate("Srv", 300, 200)
  15.     $edit = GUICtrlCreateEdit("", 10, 10, 280, 180)
  16.     GUISetState()
  17.  
  18.     $c_sock = -1
  19.    
  20.     Do
  21.         $c_sock = TCPAccept($sock) ; jegliche Verbindung über Socket erlauben
  22.     Until $c_sock <> -1
  23.    
  24.     While 1
  25.         If GUIGetMsg() = $GUI_EVENT_CLOSE Then ExitLoop
  26.         $recv = TCPRecv($c_sock, 2048) ; Datenempfangen und in Variable speichern
  27.         If @error Then ExitLoop ; Falls ein Fehler auftritt, direkt schließen
  28.         If $recv <> "" Then            
  29.             GUICtrlSetData($edit, " Client > " & $recv & @CRLF & GUICtrlRead($edit)) ; Empfangenen Text ausgeben
  30.            
  31.             If StringLeft($recv, 4) == "pos_" Then
  32.                 $trimmed = StringTrimLeft($recv, 4)
  33.                 $splitted = StringSplit($trimmed, "/")
  34.                 MsgBox(0,"Moved","Client hat sich bewegt: " & @CRLF & $splitted&#91;1] & "x" & @CRLF & $splitted[2] & "y" & @CRLF & $splitted[3] & "z")
  35.             EndIf        
  36.         EndIf
  37.     WEnd
  38.  
  39.     If $c_sock <> -1 Then TCPCloseSocket($c_sock)
  40.  
  41.     TCPShutdown()
  42. EndFunc  ;==>srv
Client.au3
autoit Code:
  1. #include <GUIConstantsEx.au3>
  2.  
  3. client()
  4. Func client()
  5.     Local $c_sock, $msg
  6.     Local $ip = @IPAddress1
  7.     Local $post = 1337
  8.  
  9.     TCPStartup()
  10.  
  11.     $c_sock = -1
  12.     $c_sock = TCPConnect($ip, $post)
  13.  
  14.     If @error Then
  15.         MsgBox(4112, "Error", "Server down!")
  16.     Else
  17.         While 1
  18.             $msg = InputBox("Input"," ", "pos_234/456/23")
  19.             If @error Or $msg == "" Then Exit
  20.             TCPSend($c_sock, $msg)
  21.             If @error Then ExitLoop
  22.         WEnd
  23.     EndIf
Zum selbst compilen: http://autoitscript.com
Download (Compiled): http://somegas.de/uploads/files/tcp_test.zip

Sn0opy ist offline   Mit Zitat antworten An Facebook senden
Werbung
Alt 19.07.2008, 18:22   #2 (permalink)
Pixelschieber
Benutzerbild von Sebastian
 

Standard

Für alle die es interessiert. Ich habe Mal ein Bild dazu gemacht wie die Programme genau aussehen. Ist alles ziemlich simple aufgebaut und erfüllt komplett seinen Zweck.

Nen Screen findet ihr im Anhang
Angehängte Grafiken
Dateityp: jpg tcp.jpg (19,1 KB, 13x aufgerufen)
Sebastian ist offline   Mit Zitat antworten An Facebook senden
Alt 27.07.2008, 23:59   #3 (permalink)
Benutzer
 

Standard

Das sieht ja gar nicht mal so schlimm aus. Ist das in C++ auch so einfach oder wird es da schwieriger?

Weil das ist ja schon fast ein Chat was du da zusammengebastelt hast. Freue mich schon wenn es irgendwann eine Fortsetzung gibt.
Kevin93 ist offline   Mit Zitat antworten An Facebook senden
Alt 28.07.2008, 00:32   #4 (permalink)
Erfahrener Benutzer
 

Standard

In C++ dürfte es um einige Ecken schwieriger werden.

Sn0opy ist offline   Mit Zitat antworten An Facebook senden
Alt 28.07.2008, 18:20   #5 (permalink)
Benutzer
 

Standard

Zitat:
Zitat von Sn0opy Beitrag anzeigen
In C++ dürfte es um einige Ecken schwieriger werden.
Habe ich gemerkt allerdings sollte ich es bald raushaben wie es richtig funktioniert
CompStop ist offline   Mit Zitat antworten An Facebook senden
Alt 05.11.2008, 17:41   #6 (permalink)
Erfahrener Benutzer
 

RSP-Fan eine Nachricht über ICQ schicken RSP-Fan eine Nachricht über Skype™ schicken
Standard

Ich freu mich schon riesig! In C++ kann ichs am Besten verwenden!
RSP-Fan ist offline   Mit Zitat antworten An Facebook senden
Antwort

Themen-Optionen
Ansicht

Forumregeln
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Anleitung für P2P und Server Client Netzwerk CompStop Netzwerkprogrammierung 17 13.08.2008 19:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:56 Uhr.


Style Copyright by Wrestling Forum
Content Relevant URLs by vBSEO 3.3.0