UDP Problem Server empfängt leitet aber nicht weiter...

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Bobo2040

Betreff: UDP Problem Server empfängt leitet aber nicht weiter...

BeitragDo, Okt 24, 2013 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Very Happy
Ich habe iwie ein Problem und zwar habe ich ein kurzes Server Script und Client Script geschrieben ...
nur ich kann machen was ich will der Client sendet dem Server die Daten aber der Server leitet die nicht weiter ...auch mit Beispiel Scripten gehts nicht liegts vielleicht daran, dass ich 2 mal den Clienten auf einem Rechner laufen lasse und den Server auch ? Als Sende und Empfangsport nehme ich den Gleichen also nur 1 Port ....
Ich komme nicht mehr weiter ... liegt es an meinem Code oder am Router ?
Wenn ich am PC bin Editiere ich mal mein Code rein...
Mfg
 

Kruemelator

BeitragDo, Okt 24, 2013 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
An eine Pc kann ein Port immer nur EINMAL vergeben werden. Das heist wenn du ein Client-Server Prorgamm testen möchtest muss man im Client einen UDP-Stream mit einem anderen Port erstellen als im Serverprogramm, dann geht es. Beim senden der Streams dann einfach den Zielport angeben (den des anderen Programmes).

count-doku

BeitragDo, Okt 24, 2013 23:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wobei der Client port am Besten sowieso von Blitz automatisch ermittelt werden sollte.
Nur der Serverport steht fest, die Clients verbinden dahin und schon kriegt der Server auch deren jeweiligen Port mit. Denn du weißt nie, ob dein späterer Anwender den vorgesehenen Port wirklich frei hat.
 

Bobo2040

BeitragDo, Okt 24, 2013 23:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay cool danke Very Happy ich probiers nachher mal aus Very Happy

Dottakopf

BeitragFr, Okt 25, 2013 7:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ein Tipp von mir behalte mal die Begriffe LAMA 3 und SimpleUDP 3 im Hinterkopf.
vor 2 Jahren(?) habe ich mal mit der SimpleUDP 3 gearbeitet und das lief super. Die aktuellen Beispiele hier zum download sind bei mir nur leider alle buggy.

Arbeite derzeit zusammen mit Chrise die Lama3 durch. Es sollte im Rahmen des Möglichen sein seine aktuell hochgeladene Lib neu hochzuladen. (Aktuell sind in den Beispielen nicht alle auf der aktuellsten Version)

natürlich kannst du alles selber coden, allerdings sind diese beiden libs wirklich machtvoll.

Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

Bobo2040

BeitragFr, Okt 25, 2013 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay cool danke für den Tipp...
kenne die SimpleUDP Libary die Lama nicht... aber ich mag Libarys nicht so wirklich ...
ich würde es lieber selber Coden weil ich sonst nix bei Lerne und dann machts auch kein Spaß das Resultat zu sehen wenn man sich ein Spiel selbst "zusammen klicken tut" so wies das auch schon bei Websites gibt...

Dottakopf

BeitragFr, Okt 25, 2013 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
die entwicklung der lib hab fast n jahr gedauert.
Sind ja auch alle Funktionen abgedeckt.. accounts verwalten, pings, Hole Punching...


Richtig! Erlange das Verständniss für den Netzwerkcode.
Aber letzten endes muss man sich nun wirklich nicht schämen wenn man die lib in einem Projekt verwendet.

Weiter so

Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

DAK

BeitragFr, Okt 25, 2013 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Dottakopf hat Folgendes geschrieben:

Aber letzten endes muss man sich nun wirklich nicht schämen wenn man die lib in einem Projekt verwendet.


Nicht nur nicht schämen: Ohne Librarys wäre man als produktiver Programmierer absolut aufgeschmissen. Es würde extrem viel Zeit drauf gehen, das Rad neu zu erfinden, statt bestehende Librarys zu verwenden. Um es noch zu verschärfen: durch das selber implementieren, statt eine bestehende Library zu verwenden, macht man eher mehr Fehler und Sicherheitslücken rein.
Wenn man es genau nimmt, verwendest du in Blitz mit jedem DrawImage u.Ä. einen Library-Befehl, nur dass Blitz seine Standardbibliothek im Vergleich zu anderen Sprachen direkt eingebaut hat.

Etwas verstehen lernen wollen ist eine sehr gute Sache. Librarys aus Prinzip verschmähen ist eine ganz andere.
Gewinner der 6. und der 68. BlitzCodeCompo
 

Bobo2040

BeitragSa, Okt 26, 2013 2:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja wäre es jetzt nicht bei diesem "LernProject" sondern bei nem kommerziellen oder so
dann würde ichs mit ner Libary machen aber bei mir ist es so, das ich nicht alles brauche also Ping Userverwaltung oder so... weil ich das mit TCP und PHP mache Wink TCP sendet bei jedem Login die daten an ne
Website und PHP verarbeitet die und speichert die in ne Datenbank wenn ich jetzt zum beispiel sehe das einer Cheatet würde ich ihn einfach rauskicken Wink weil das Spiel nur läuft wenn PHP 1 ausgibt wenn PHP aber 0 ausgibt wird das Spiel beendet Very Happy
Ist nen wirklich simples Bann-System ....
Und UDP brauche ich nur um die Userdaten also X,Y,Hitpoints,Schild,Konfiguration,Gewählte Munition,Anvisierter Gegner,Mausposition auszutauschen und diese dann verarbeiten... dafür braucht man
finde ich keine Libary... und ich bin nicht der Meinung das Libarys nicht zu benutzen SIcherheitslücken aufweisen können eher im Gegenteil wer sich mit einer Libary nicht auskennt und trozdem damit arbeitet und irgendwelche Daten nimmt und die bekommenen Daten nicht überprüft erstellt Sicherheitslücken und ausserdem haben diese Libs meistens 1000+ Zeilen Code und da kann der Beste Programmierer der Welt dran gesessen haben jeder macht Fehler Wink Und dann dauerts teilweise ewig oder ist gar unmöglich den Fehler zu finden ..wenn mans aber selbst schreibt, dann ists meist übersichtlicher weil jeder nen anderen Programmierstil hat und man findet leichter Fehler/Bugs/Sicherheitslücken ... Very Happy
Naja das ist meine Meinung/Ansicht ....

Und ich hab nochmal ne Frage undzwar habe ich bis jetzt in meinem Spiel knapp 2000 Zeilen und würde gerne die Ai Funktionen auslagern ... nur da wollte ich mal wissen wenn ich eine Datei Include wird dann viel Ram/CPU verbraucht ? Und wird das Spiel dadurch langsamer ? Weil mein Spiel soll auch noch auf dem Holzigsten PC laufen den es gibt xD

Mfg

Tennisball

BeitragSa, Okt 26, 2013 2:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Durch das Verwenden von Include verändert sich am Endprodukt gar nichts.

Gruß,
Tennisball

PS: Dein "Bannsystem" wäre ziemlich leicht auszuhebeln. Wink
 

Bobo2040

BeitragSa, Okt 26, 2013 2:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Cool danke Very Happy
Zitat:
PS: Dein "Bannsystem" wäre ziemlich leicht auszuhebeln. Wink


Wie denn ?

Mfg

BladeRunner

Moderator

BeitragSa, Okt 26, 2013 7:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
und ich bin nicht der Meinung das Libarys nicht zu benutzen SIcherheitslücken aufweisen können eher im Gegenteil wer sich mit einer Libary nicht auskennt und trozdem damit arbeitet und irgendwelche Daten nimmt und die bekommenen Daten nicht überprüft erstellt Sicherheitslücken und ausserdem haben diese Libs meistens 1000+ Zeilen Code und da kann der Beste Programmierer der Welt dran gesessen haben jeder macht Fehler Wink Und dann dauerts teilweise ewig oder ist gar unmöglich den Fehler zu finden ..wenn mans aber selbst schreibt, dann ists meist übersichtlicher weil jeder nen anderen Programmierstil hat und man findet leichter Fehler/Bugs/Sicherheitslücken ... Very Happy

Deine Argumentation ist nicht schlüssig, denn auch du wirst - vorausgesetzt du machst es ordentlich- ruckzuck mehrere hundert bis tausend Zeilen Code dafür produzieren, und du wirst zwangsläufig auch Fehler drin haben. Bewährte Libraries haben in der Regeln schno hunderte Iterationen hinter sich, in denen Fehler ausgemerzt wurden. Je häufiger eine Lib benutzt wird desto mehr User gibt es die Fehler finden und melden und desto größer die Wahrscheinlichkeit dass schon alles an bugs gefunden und gefixt wurde.

Zu Lernzwecken ist es absolut okay mal was kleines zu basteln, aber wenn ich es schnell, stabil und sicher will benutze ich eine fertige, getestete, und bewährte Lib.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

DAK

BeitragSa, Okt 26, 2013 12:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem mit Fehlern ist oft nicht sie zu beheben, sondern sie zu finden. Wenn du deine Befehle selber bastelst, dann werden sie nur von dir getestet, und den paar dutzend Usern, die du für dein Programm hast.

Nimmst du eine bekanntere Library her, dann wurde die von tausenden Entwicklern und Millionen von Nutzern getestet.

Nimm beispielsweise die Java- oder C++-Standardbibliotheken. Beide existieren schon über ein Jahrzehnt und wurden schon im Millionen von Projekten eingesetzt. Die Abermillionen Stunden Testen, die in diese Bibliotheken rein gegangen sind, kann ein Einzelner nie aufholen. Nicht, wenn er sein ganzes Leben über nichts anderes tut.

Diese Bibliotheken werden seit Jahrzehnten von professionellen Programmierern gewartet und verbessert. Es gibt keine größere Sicherheit auf fehlerfreie Befehle als das.

Das waren jetzt zwei Extrembeispiele, aber die meisten Bibliotheken wurden von Leuten gemacht, die sich viel besser auskennen als du, und mehr getestet als deine Programme es je werden.

Bibliotheken kann man meist mehr vertrauen, als eigenen Programmen.

Wenn man es genau nimmt, verwendest du eh schon Bibliotheken, nämlich die BlitzBasic-Standardbibliothek, die dir die ganzen Befehle zur verfügung stellst, mit denen du arbeitest.

Glaubst du, der Computer versteht ein LoadImage oder ein OpenTCPStream von alleine?
Gewinner der 6. und der 68. BlitzCodeCompo

count-doku

BeitragSa, Okt 26, 2013 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Echt mal Leute, meint ihr nicht, dass ihr ein wenig zu sehr auf die Bibliotheken drängt?

Klar machen sie es einfacher und sind fehlerfreier, aber er hat doch gesagt, dass er eben auch Netzwerkzeug RICHTIG lernen will - sonst heißt es hier auch immer, lern selber und nimm nichts fertiges...

Und wenn es wirklich nur um ein paar Spielerposis/daten geht, macht es echt keinen großen Unterschied bzw. kann es je nachdem wie weit er schon ist länger dauer oder komplizierter sein noch Lib's zu benutzen.

Hier mal 2 kurze Beispielcodes mit nur 1nem Port und variablen Clientport:
BlitzBasic: [AUSKLAPPEN]
;Server

Local udpServer=CreateUDPStream(12345) ; Bekannter (festgelegter) Server Port von 12345


Local timer=CreateTimer(30)
While Not KeyHit(1)
Local Client_Ip=RecvUDPMsg(udpServer) ; Wenn nachricht erhalten wurde, ip zum Antworten speichern
If Client_Ip
Local Client_Port=UDPMsgPort(udpServer) ; Client Port auslesen
Local msg$=ReadLine(udpServer) ; Nachricht lesen
Print "Paket von: "+DottedIP(Client_Ip)+":"+Client_Port+" "+msg

WriteLine udpServer,"Gotcha. "+msg ; Antworten
SendUDPMsg udpServer,Client_Ip,Client_Port ; Senden an jetzt bekannte client daten
End If

WaitTimer timer
Wend
CloseUDPStream udpServer
End


BlitzBasic: [AUSKLAPPEN]
; Client

Local udpStream=CreateUDPStream() ; Von Blitz wird automatisch ein freier Port gewählt

Local serverIP=INT_IP("127.0.0.1"),serverPort=12345 ; Server Daten müssen bekannt sein

Local timer=CreateTimer(30),lastMsg=MilliSecs()
While Not KeyHit(1)

If MilliSecs()-lastMsg>2000 ; Alle 2 Sekunden
Write "Sending..."
WriteLine udpStream,"Msg:"+Rand(1,100) ; Nachricht an Server
SendUDPMsg udpStream,serverIP,serverPort ; Senden
lastMsg=MilliSecs()
End If


If RecvUDPMsg(udpStream) ; Antwort empfangen und anzeigen
Local msg$=ReadLine(udpStream)
Print "OK "+msg

End If

WaitTimer timer
Wend
CloseUDPStream udpStream
End


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


Die Client daten kannst ja beim Server in nem Type oder so speichern, musst die ja nicht immer wieder abrufen. Sind natürlich auch nur grobe Codes, um zu zeigen, wies mit einem Port geht.

lg,
Count-Doku

DAK

BeitragSo, Okt 27, 2013 8:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ging nicht darum wen zu Librarys zu drängen. Wenn du dir die ersten paar Antworten schaust, dann steht dort auch, wenn er es lernen will, soll er's so machen.

Worum es uns dann mit den Librarys ging war folgende Aussage:
Bobo2040 hat Folgendes geschrieben:
und ich bin nicht der Meinung das Libarys nicht zu benutzen SIcherheitslücken aufweisen können eher im Gegenteil wer sich mit einer Libary nicht auskennt und trozdem damit arbeitet und irgendwelche Daten nimmt und die bekommenen Daten nicht überprüft erstellt Sicherheitslücken und ausserdem haben diese Libs meistens 1000+ Zeilen Code und da kann der Beste Programmierer der Welt dran gesessen haben jeder macht Fehler Wink Und dann dauerts teilweise ewig oder ist gar unmöglich den Fehler zu finden ..wenn mans aber selbst schreibt, dann ists meist übersichtlicher weil jeder nen anderen Programmierstil hat und man findet leichter Fehler/Bugs/Sicherheitslücken ...


@Bobo: Wegen deinem Bannsystem: Dadurch dass du das Bannsystem von der echten "Spielverbindung", die die Aktionen der Spieler überträgt, trennst, gibt's mehr als genug Möglichkeiten, das zu umgehen. Eine davon wäre z.B. zuerst mit Wireshark herausfinden, was der Server sendet (und an welcher Adresse sich der Server befindet). Dann setzt man einen lokalen DNS-Server auf, der Anfragen an deinen Server an einen lokalen Server umleitet, wo man ein kleines PHP-Script laufen lässt, dass genau die gleichen Ausgaben ausgibt.

Alternativ kann man auch deinen Server am Router blockieren, so dass die Anfrage nie das LAN verlässt, und schickt dann mittels Packet Replay genau das, was dein Server geschickt hätte, an den Client.

Oder wenn man ein bisschen Assembler kann:
Du wirst in deinem Code wahrscheinlich eine Abfrage haben, die ungefähr so ausschaut:
BlitzBasic: [AUSKLAPPEN]
isBanned = getIsBanned()
If (isBanned) Then Print("Du bist gebannt!")

Alles, was man dann tun muss, ist in Assembler die Stelle zu finden, und isBanned in der If-Bedingung durch False ersetzen. Dann wird der Inhalt des Ifs nie ausgeführt, auch wenn isBanned eigentlich True ist.


Zwei Sachen, um dein Bannsystem sinnvoller zu machen:
-) Bannsystem in die Spieldaten integrieren: Willst du Positionsdaten haben, musst du ungebannt sein. Das macht es schwieriger, das Bannsystem herauszufiltern und mit einem Fake zu ersetzen.
-) Statt einer 1 oder einer 0 sende was komplexeres. Am besten etwas, das mit einem RSA-Schlüssel verschlüsselt ist, und von einem Timestamp abhängt. Das kannst du dann am Client entschlüsseln und schauen, ob der Timestamp halbwegs hinkommt. Der RSA verhindert gefakte Pakete, und der Timestamp verhindert Replay-Attacken.
-) Um dich gegen Assembler-Attacken zu schützen brauchst du eine komplexere Logik auf Seiten des Clients. Verschachtle die Überprüfung auf Bannung in mehreren Funktionen, verwende verschiedene Variablen, die verschiedene Inhalte haben. Überprüfe den Ban an mehreren Stellen im Code, und wenn eine davon anschlägt, banne. Dadurch machst du es komplizierter für Angreifer alle richtigen Stellen zu finden.
Gewinner der 6. und der 68. BlitzCodeCompo
 

Bobo2040

BeitragSo, Okt 27, 2013 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok
Danke Very Happy
Nur ich dachte das BlitzBasic und BlitzPlus direkt in Maschinencode Compiled wird ?
Und das wäre dann glaube nur was für die ganz hartgesottenen unter uns die damit was Anfagen könnten ?
Danke für das Server/Client Script ... ich hab meins jetzt mit 2 Ports und es funktioniert... Very Happy
Nur wird es nicht langsamer wenn man nur 1 Port benutzt ? Ich meine dann müssen ja Doppelt so viele Daten über einen Port gesendet werden oder nicht ?
Mfg

count-doku

BeitragSo, Okt 27, 2013 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmh mit 2 Ports gehts klar, nur wirst du damit schwierigkeiten haben, sobald dein Programm ausm Lan raus soll. Mit einem Port muss nur der Server seine Firewall/NAT offen haben, der Client kann seinen Hole-Punchen.

Bei 2 Ports geht das nicht so leicht/nur über einen dritten Masterserver, der die Daten der Clients verteilt.
(hatte auch für letzteres mal was geschrieben, Interesse?)

Warum sollten 2 Ports schneller sein? Du kannst sowieso nicht auf beide gleichzeitig (mit Standard Blitz) was schreiben, und ich denke die Internetleitung wird eh die Engstelle.

Aber machs vllt. am Anfang und solange es nur fürs LAN ist mit 2 Ports, ist einfacher. Oder einen Port zum Verbinden und danach dann den 2ten Punchen, gibt viele Möglichkeiten -- kannst ja experimentieren.


@ DAK, ja sry. Habe vllt. etwas harsch reagiert. Hatte nur das Gefühl, dass auch im Allgemeinen hier sehr oft/sehr schnell zu Libraries geraten wird und vergessen wird, dass die meisten es doch zu Hobby/Lernzwecken tun und damit Libs nicht unbedingt hilfreich sind. Aber genug dem ganzen, jeder so wie er möchte.

lg,
Count-Doku

DAK

BeitragSo, Okt 27, 2013 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
@count-doku: klar, weiß schon, was du meinst, und damit hast du ja auch recht. Es ging bei dem Ganzen hald ja auch um was anderes.


@Bobo2040: Kurzfassung (vielleicht schreib ich dazu auch noch was längeres wo anderst):
Eine Programmiersprache selbst besteht normalerweise nur aus den Kontrollstrukturen: so Sachen wie If und While, Function, Variablen und das Zeug, aber keine fertigen Funktionen, die dann irgendwas außerhalb dieser Kontrollstrukturen machen.
Dazu gibt es dann die Standard-Bibliothek/Standard-Library. Da sind dann alle Befehle drinnen, die man so im Allgemeinen braucht, also alles von Print über Dateien und Netzwerk und je nach Sprache bis hin zu Grafik und Sound.
Bei vielen Sprachen muss man diese Standardbibliothek (oder die Teile davon, die man verwenden will) erst importieren. Da definierst du am Anfang des Programmes, was für Sachen du brauchst, und alles andere wird weggelassen (-> erzeugt kleinere und schnellere Programme).
In Blitz hat man sich der Einfachheit halber dazu entschieden, dass die Standardbibliothek automatisch inkludiert wird. Man muss sie also nicht selber erst importieren. Das führt allerdings dazu, dass viele Anfänger denken, komplexe Befehle wie Graphics() oder LoadMesh() oder so gehören fix zur Sprache und sind keine Bibliothek, was aber eigentlich nicht der Fall ist.

Genau wie jede andere Bibliothek auch wird der Code dann schon in Maschinencode übersetzt, allerdings gibt es für diese Befehle keine direkte Entsprechung in Maschinencode, sondern der Befehl wird in eine Reihe Maschinenbefehle übersetzt. Selbst schon eine Addition von mehr als zwei Variablen muss in mehrere Maschinenbefehle ersetzt werden.

Intern sind alle Funktionen, die fix in Blitz eingebaut sind, auch nur Funktionen, wie sie in einer Library vorkommen, allerdings sind dies Closed Source, das heißt, es kann keiner daran rum schrauben, wenn man einen Fehler findet, und solche Fehler kommen vor. So z.B. in BB der Befehl ImagesCollide(), der zwar früher auf alten Grafikkarten funktioniert hat, aber jetzt gerne ohne für den Programmierer ersichtlichen Grund MAVs wirft.
Wäre dieser Befehl teil einer Open Source-Bibliothek, wie es ab BlitzMax der Fall ist, dann hätte sich schon vor Jahren irgendein normaler BB-Programmierer dran gesetzt und in ein paar Stunden einen Fix dafür geschrieben. Da das nicht der Fall ist, und nur Mark Sibly den Code hat, der aber keine Zeit/Lust hat, einen Fix zu schreiben, gibt es diesen Fehler jetzt, mehrere Jahre seit er entdeckt wurde, immer noch.
Gewinner der 6. und der 68. BlitzCodeCompo
 

Kruemelator

BeitragSo, Okt 27, 2013 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit den zwei Ports hatte ich vorgeschlagen, um an einem Pc den Client und den Server zu starten und zu testen. Wenn der Client auf einem anderen Pc ist als der Server können beide ruhig den selben Port haben.

Zum Thema Hole-Punching:
Pc-1 muss die Internet-IP und den Port des Programms von Pc-2 und umgekehrt wissen. Wenn nun beide gleichzeitig eine Nachricht zueinander senden hat man eine Verbindung. Der Server muss dazu natürlich wissen wer beitreten möchten.
 

Bobo2040

BeitragDi, Okt 29, 2013 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay
@doku count
Klar haette Interesse dann kann ich mir mal anschauen wie ihr so programmiert also die die schon bisschn was drauf haben Wink

Und ich wollte es eig. Uebers Internet machen also nicht Lan sondern dachte ich an nen V Server oder das mein PC als Server dient und die Daten verteilt geht das nicht ?


Mfg

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group