Winsock in VB (TCP) / Multiplayer

G

gRaf-eny

Hallo,
Ich habe ein Spiel mit dem Namen "4GewinntNICHT!" programmiert.
Jetzt wollte ich dieses Spiel Netzwerk/Internet fähig machen.

Ich habe mir das Tuturial "Winsock in VB (TCP)" durchgelesen und nachprogrammiert, jedoch ohne Erfolg.

Problem 1 war: Der Rechner 2 (auf dem ich nicht programmiert habe) sagte:
"MSWINSCK.OCX is out of date" daher habe ich sie durch die vom anderen Pc ersetzt.
Jetzt läuft das Programm zwar, aber es funktioniert nicht.

Kann das an den Ports liegen ? Welche sollte ich benutzen?
Hat wer eine Idee / Tuturial für kleine Netzwerkspiele ?

Bin für jeden Post in Themenrichtung dankbar!
 
Kommt denn eine Fehlermeldung? Wenn ja, welche?
Die Ports sind egal, solange sie nicht von anderen Programmen verwendet werden. Nimm einfach was hohes als Portnummern, z.B. 20000
 
ok danke ich habs jetzt so ziemlich.. geht wohl wenn man die alte datei ersetzt

aber da ich ja spiel daten übertragen will, muss ich die nach nem muster senden:

zum beispiel am anfang des spiels : <BLUENAME>Peter
Wenn ich das jetzt sende
Wie kann ich das Filtern? Er muss jetzt ja erkennen, das ihm der Name des Blauen Spielers gesand wurde und das der Peter ist...
Wer ne Idee?
 
Du definierst ein Trennzeichen, zum Beispiel das hier: ®
Code:
global const TRENNZEICHEN as string = "®"
Dann sendest du die Daten:
Code:
Senden "Bluename" & TRENNZEICHEN & "Peter"

Alle angekommenen Daten teilst du jetzt beim Trennzeichen auf mittels der vielen String-Funktionen, Mid, Left, Right usw.
Code:
Angekommen: "Bluename®Peter"
"Angekommen" aufteilen,
-->Informationstyp="Bluename"
-->Information="Peter"
Mittels Select case jetzt auswerten, was passieren soll:
Code:
Select Case Informationstyp
   Case "Bluename"
         '-->irgendwas tun
   Case "greenname"
         '-->irgendwas tun
End Select
 
Hallo gRaf-eny,

nur noch mal kurz zum ersten Problem.

Du bist dir schon bewußt das du ein Setup erstellen
musst damit ein VB Programm auf einem anderen
Rechner funktioniert.
Entweder du nutzt den VB Verpackungsassisenten über
den zwar viele meckern oder einen anderen zuverlässigen.
Es gibt mehrere Kostenlose, aber auch sehr teure Setup
Erstellungsprogramme.
Wenn du ein Setup nutzt hast du keine Probleme das irgendwelche
Dateien nicht in einer veralteten Version oder gar nicht vorliegen.

Jens
 
@ Shakie danke, das is ne super idee, aber wie genau teile ich bis zum Trennzeichen auf ?

Ich habe jetzt
DATA = "<REDNAME> ®EnY"

und das muss jetzt irgendwie aufgeteilt werden!?
MODE = Left(DATA,9)
INHAL= Right(DATA, ?) '## Nich jeder name is gleichlang ?

Und ausserdem gibt es ja eh die köstlichen Trennzeichen! Aber wie nutze ich diese?

@ JensG
Ok das würde gehen, hab auch Installerwise trial, aber ich möchten den leuten ja auch nich ihre daten überschreiben..
 
Zuletzt bearbeitet von einem Moderator:
++
Ich habe es jetzt über LAN hin gekriegt!
Aber übers Internet geht NIX
Woran kann das liegen ?
Ich benutze port 1001

^die frage oben mit trennzeichen is auch noch aktuell!
 
Zuletzt bearbeitet von einem Moderator:
Aufteilen von Strings:
Entweder nach dem Trennzeichen suchen...
Code:
MODE = Left(DATA,InStr(DATA,Trennzeichen))
INHAL= Right(DATA, len(DATA)-InStr(DATA,Trennzeichen))
...oder die split()-Funktion benutzen (siehe Hilfe), mit der kann man ganz einfach Strings anhand von Trennzeichen in ein Array zerlegen.

Wenns im LAN geht gehts auch über Internet, es müssen nur ein paar Vorraussetzungen erfüllt sein:
- Du musst über die dynamische IP deines Spielpartners verbinden
- Der gewählte Port darf nicht schon belegt oder durch eine Firewall geblockt sein
- Wenn einer der Spieler nicht direkt am Internet hängt, z.B. über Router, muss dieser entsprechend konfiguriert sein um die Datenpakete weiterzuleiten
 
- Der gewählte Port darf nicht schon belegt oder durch eine Firewall geblockt sein
- Wenn einer der Spieler nicht direkt am Internet hängt, z.B. über Router, muss dieser entsprechend konfiguriert sein um die Datenpakete weiterzuleiten

Genau dort liegt bei mir immer das Problem! Bloss kennen sich meine "Testpartner" nicht gut genug mit PCs aus, um die Ports freizumachen oder Router zu konfigurieren. Kann man das irgendwie direkt mit einem VB-Programm machen?
 
Original geschrieben von Asmo
Genau dort liegt bei mir immer das Problem! Bloss kennen sich meine "Testpartner" nicht gut genug mit PCs aus, um die Ports freizumachen oder Router zu konfigurieren. Kann man das irgendwie direkt mit einem VB-Programm machen?
Nur für den Test kannst ja mal ausnahmsweise die Firewall kurz deaktivieren. (wenn du einen Port verwendest der sonst von keinem Programm benutzt wird sollte es dann gehen) ;)
Wenn die einen Router verwenden und ihn nicht konfigurieren können siehts aber nicht gut aus, weil das muss schon sein da alle Rechner im LAN nach aussen über den Router die selbe IP haben.
Es wäre zwar theoretisch möglich den Router per Programm zu konfigurieren, aber da das bei jedem Modell anders geht und meistens ein Passwort erforderlich ist wäre das zu aufwändig.
 
Zurück