Register for your free account! | Forgot your password?

Go Back   elitepvpers > Off-Topics > Tutorials
You last visited: Today at 03:57

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Visual Basic Scripting *Teil 4*

Discussion on Visual Basic Scripting *Teil 4* within the Tutorials forum part of the Off-Topics category.

Reply
 
Old   #1
 
elite*gold: LOCKED
Join Date: Jun 2008
Posts: 773
Received Thanks: 393
Visual Basic Scripting *Teil 4*

Die Benutzung der Winsock in ihrer Applikation
______________________________________________
**********************************************

Beschreibung:
*************
Das Winsock Control ist ein mächtiges Steuerelement
und kann in ihrer Applikation benutzt werden, um Daten
exakt und sicher über eine Verbindung zu übertragen.
In diesem Artikel werde ich etwas tiefer in die
Grundlagen des Winsock Controls eingehen.

Die Protokolle:
***************
Das Winsock Control ist vielseitig in den Möglichkeiten
Daten zwischen zwei Computern auszutauschen. Es kann
mit zwei verschiedenen Protokollen umgehen:
TCP/IP und UPD.

TCP/IP:
*******
TCP/IP ist das plattformunabhängige Standard-
netzwerkprotokoll. TCP/IP ist eine Abkürzung für
Transmission Control Protocol/Internet Protocol.
Daten werden in Paketen versendet, auch als Datagramme
bezeichnet. Sie bestehen aus einem Kopf [Header]
und applikationsabhängigen Daten. Der Header beinhaltet
Informationen über das Ziel und der Herkunft [Source]
des Paketes. IP ist nicht sehr zuverlässig, solange es
keine Garantie dafür gibt, dass die Pakete in der
richtigen Reihenfolge ankommen. Dies ist dann der Grund
warum das TCP Protokoll eingebunden wurde, um sich zu
vergewissern, dass die Daten auch in der richtigen
Reihenfolge ankommen. Diese Art von Protokoll bezeichnet
man als verbindungsorientiertes Protokoll [connection-
oriented protocol].
Dies bedeutet, dass die Computer, um Daten austauschen
zu können, sich zuerst verbinden müssen mit einem
"drei-Wege-Verbindungsaufbau" [three-way handshake].

UDP:
****
UDP steht für "User Data Protocol". Im Gegensatz zu TCP
braucht UDP keine bestehende Verbindung um Daten an einem
Stück zu senden. UDP ist nicht empfehlenswert, wenn man
sichergehen will, dass alle Daten vom Clienten so
empfangen werden wie sie verschickt wurden. UDP wird
normalerweise benutzt, um "streaming audio" und "-video"
über das Internet zu übertragen. Da UDP keine Verbindung
via handshake benötigt und so nicht sichergeht, dass der
Client alle Daten bekommt, ist hier die Geschwindigkeit
einiges schneller als über das TCP/IP Protokoll.

Verbinden:
**********
Zu einem anderen Computer zu verbinden ist sehr simpel.
In diesem Beispiel, benutze ich das TCP/IP Protokoll.
Um zu einem anderen Computer zu verbinden muss der Computer
auf eine Verbindung warten:

Quote:
Winsock.LocalPort = 1234
Winsock.Listen
Zuerst wählen wir den Port, an dem verbunden werdem soll.
In diesem Fall ist es Port 1234. Danach führen wir die
"Listen" Methode aus. Das Control wartet nun bis auf eine
Verbindung am Port oder bis es abgebrochen wurde.
Der andere Computer benutzt folgendes, um die Verbindung
aufzubauen:

Quote:
Winsock.Connect "127.0.0.1", 1234
Das erste Argument ist der Host, zu dem die Verbindung
aufgebaut werden soll. Wenn man sich in einem Netzwerk
befindet kann man auch den Hostnamen des anderen Rechner
verwenden. Das zweite Argument ist die Port Nummer.

Sobald die Connect Methode ausgeführt wurde wird das
ConnectionRequest Ereignis bei dem RemoteComputer ausgelöst.
Dort muss der Rechner die Verbindung mit folgendem Code
akzeptieren:

Quote:
Private Sub Winsock_ConnectionRequest(ByVal requestID As Long)
Winsock.Close
Winsock.Accept requestID
End Sub
Nun sind wir kurz vor der endgültigen Verbindung.
Der nächste Schritt ist, die Accept Methode zu benutzen,
um sicherustellen, dass die Verbindung aufgebaut ist.

Daten senden:
*************
Nun, da die Verbindung zwischen Computer A und B zustande
gekommen ist, kann man Daten senden und empfangen. Um Daten
zu senden, benutzt man den send data Befehl.
Hier ist nun der Code, um eine Textzeile an Computer B
zu senden:

Quote:
Winsock.SendData "Hi Computer B!"
Einfach, nicht? Das Winsock Control ist sehr einfach, da
es einen vor der Winsock API fernhält, die kompliziert
werden kann.

Daten empfangen:
****************
Da nun Daten gesendet wurde, will man ja auch welche
empfangen. Dies ist im Prinzip genauso simpel wie das
Senden. Wenn Daten ankommen, lösen die das data arrival
Ereignis aus. Um die ankommenden Daten in einer Textbox
angezeigt werden sollen, benutzt man folgenden Code:

Quote:
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
Winsock.GetData sData
MsgBox sData
End Sub
Zuerst deklariert man die Variable, die die eingehenden
Daten tragen soll. Dann beutzen wir die Get Data
Methode um die Daten zu empfangen, und schliesslich
gibt man sie in der Messagebox aus.

Daten interpretieren:
*********************
Manchmal will man mehr als nur die Daten in einer Textbox
anzeigen. Um den Datensatz zu interpretieren benutzt
man den IF-Befehl, oder das SELECT Statement, wie z.B:

Quote:
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
Winsock.GetData sData

Select Case sData
Case "ASK"
InputBox "What is your name?", "Question"
Case "EXIT"
MsgBox "Do you want to exit?"
Case Else
MsgBox sData
End Select
End Sub
Zuerst speichern wir wieder die eingehenden Daten in
einem String. Dann dann machen wir die Fallunterscheidung
und je nach dem Inhalt der Variable handeln wir anders.
Man kann auch durch den String parsen und verschiedene
Befehle auslesen, die aufgeteilt wurden.
Wozu braucht man dies? Ganz einfach, wenn man einen
Server programmiert, der textbasiert die Daten von
einem Clienten erhalten soll.

Zusammenfassung:
****************
Dies war eine sehr kurze Einführung in die Winsock
Programmierung. Dies bedeutet, dass dies nur eine Idee
geben soll wie es funktioniert und was man damit alles
anstellen kann.
Für tiefergehende Einblicke sollte man sich folgendes
Buch über die Internetprogrammierung anschauen:

Visual Basic Internet Programming von Carl Franklin
Cael. is offline  
Thanks
3 Users
Old 11/27/2008, 20:00   #2
 
DamageBreaker's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 358
Received Thanks: 43
thx das hab ich noch net gewusst



+karma
DamageBreaker is offline  
Reply


Similar Threads Similar Threads
Visual C++ (C++), Visual Basic, oder AutoIT?
06/24/2010 - .NET Languages - 11 Replies
Hallo Zusammen Ich würde gerne mit dem Programmieren anfangen. Meine Vorstellungen: Es müsste möglich sein, eigene Programme zu schreiben wie z. B. MSN, Emule oder ähnliches. Natürlich nie in dieser Grösse nur als Beispiel. Als weiteres sollte mit der gleichen Programmiersprache auch die Möglichkeit bestehen einen WoW Bot zu schreiben. Habe gehört die meisten Bots sind in Auto IT geschrieben. Gibt es unterschiede wegen des Warden schutzes oder kommt es nicht darauf an?
Visual Basic
05/02/2010 - .NET Languages - 0 Replies
Now Nexxoz Productions has stated whit forum and wants to share all about visual basic 6 and later so jump over to use and see but remember to have fun at ELITEPVPERS :mofo::mofo: Take me to Nexxoz Productions
Virtual Basic Scripting *Teil 2*
11/28/2008 - General Coding - 5 Replies
Halli Hallo, Wilkommen zum *Teil2* Meiner Scripting Tutorials =) Viel Spaß f-Then-Else-Anweisung Genau wie Menschen müssen Computer die Möglichkeit haben, Entscheidungen zu treffen, auf Grund von bekannten (oder auch zufälligen) Kriterien. In VB verwendet man If ... Then Konstruktionen für eben solche Operationen, die von Bedingungen abhängen.



All times are GMT +1. The time now is 03:58.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.