Geschrieben von soulout am 30.12.2004, 20:44

Winsock ist eine äußerst wichtiges und mächtiges Modul, dass Visual Basic den Weg ins Internet bzw. Netzwerk eröffnet.

Winsock unterstützt 2 Protokolle TCP und UDP.

Grundsätzlich besteht eine SERVER/CLIENT Applikation aus dem

Server (Verbindungstelle) und dem Client (Der User).

Der Server verbindet die einzelnen Clients untereinander.

Wichtig ist, das der Server so gering wie möglich beansprucht werden sollten, und lediglich die Daten der Clients weiterleiten sollte. Sonst besteht Absturzgefahr/Überlastung des Servers. Also sollten alle aufwendigen Prozeduren auf die Clients ausgelagert werden. (Ausgenommen globale Funktionen)

Die VERBINDUNG erfolgt über eine IP-Adresse und einen Port, die vor Verbindungsaufbau angegeben werden müssen.

>>>>>>S E R V E R<<<<<<

Nun wirds elektrisch... Bevor wir aus einen Winsock einen Server machen können, benötigen wir 1 Verbindungswinsock zum Zwischenlagern der eingehenden Verbindungen und einen "Adapter", über den später die Verbindung zum Client ausgelagert wird.

Zuerst bestimmen wir wie viele Clients unser Server aufnehmen kann. Dementsprechend benötigen wir für jeden Client ein Winsock. Danach benötigen wir ein Server Winsock.

Nun zur Programmierung:

Wir müssen dem Server Winsock klarmachen, auf welches Winsockmodul die Verbindung weitergeben werden soll... Folgendermaßen:

srvWinsock = Mein Serverwinsock
adpWinsock(0-9) = meine 10 Adapterwinsocks
<<<<CODE>>>>

Private Sub srvWinsock_ConnectionRequest(ByVal requestID As Long)

Dim temp As Integer

For temp = 0 To 9
If Not adpWinsock(temp).State = "7" Then
adpWinsock(temp).close
adpWinsock(temp).Accept (requestID)
End If
Next

End Sub

<<<</CODE>>>>

'State' gibt uns den aktuellen Status des Winsockes als Integerwert zurück..
9... für: es konnte keine Verbindung aufgebaut werden
7... für: eine Verbindung ist aufgebaut
6... für: eine Verbindung wird aufgebaut
2... für: Server gestartet
0... für: kein Status

'Close' setzt das Winsockmodul auf State=0 zurück.

Danach müssen wir den Server starten. Dafür müssen wir wissen, über Welchen Port der Server gestartet werden soll... im Beispiel Port 3000.

Der Port ist frei wählbar, dennoch kann dieser nur 1 mal pro IP-Adresse geöffnet werden.

<<<<CODE>>>>

srvWinsock.RemotePort =3000
srvWinsock.Listen

<<<</CODE>>>>

Mit RemotePort wird der Port festgelegt und mit Listen, wird er Server gestartet.

Der Server ist nun einsatzbereit.

>>>>>>C L I E N T<<<<<<

Wenn wir uns zu einem Server verbinden wollen benötigen wir die IP-Adresse und Port über den der Server läuft.

In diesem Beispiel verbinden wir uns zu uns selbst über den Port 3000

cltWinsock = unser Client Winsock

<<<<CODE>>>>

cltWinsock.Connect (cltWinsock.LocalIP,"3000")

<<<</CODE>>>>

Mit Connect verbinden wir uns zu unserer Localen IP-Adresse, die mit LocalIP ermittelt werden kann.

Bewertung Anzahl
6
50,0 %
1 Bewertungen
3
50,0 %
1 Bewertungen