Häufig wird im Diskussionsforum gefragt, wie man mit der Winsock-Komponente Daten von einem Computer zu einem anderen Computer sendet und auch empfängt. Zuerst eine kleine Einführung: Man benötigt zwei Programme:
Server: Client: Für diese Vorgehensweise verwenden wir das TCP/IP-Protokoll des Winsock-Controls. Der Server...Erstellen Sie ein neues Projekt und fügen zunächst die Winsock-Komponente hinzu (Projekt - Komponenten - Microsoft Winsock Control). Nun ziehen Sie die Komponent auf die Form. Benötigt wird weiterhin noch ein Command-Button (Command1), sowie eine MultiLine-TextBox, in der die empfangenen Daten angezeigt werden.Und hier der Codeteil unseres Server-Projekts: Option Explicit Private Sub Form_Load() ' Command1 deaktivieren Command1.Enabled = False ' Port 12345 soll abgehört werden Winsock1.LocalPort = 12345 ' Abhör-Vorgang starten Winsock1.Listen End Sub ' Wenn ein Computer versucht eine Verbindung mit dem ' Server aufzubauen Private Sub Winsock1_ConnectionRequest( _ ByVal requestID As Long) ' Das Abhören wird beendet Winsock1.Close ' Die Verbindung wird akzeptiert Winsock1.Accept requestID ' Command1 anschalten damit man die Nachricht ' senden kann Command1.Enabled = True End Sub ' Wenn Daten ankommen Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim sData As String ' Die ankommenden Daten werden in einer Variable ' (strDaten) gespeichert Winsock1.GetData sData ' Und in einer MutliLine-TextBox ausgegeben With txtMsg .SelStart = Len(.Text) .SelText = sData End With End Sub Private Sub Command1_Click() ' Nachricht wird zum Client gesendet Winsock1.SendData "Hallo Client!" End Sub ' Wenn die Verbindundung getrennt wird Private Sub Winsock1_Close() ' Command1 ausschalten Command1.Enabled = False End Sub Und nun zum Client...Starten Sie eine neue Instanz der VB-IDE und erstellen ein weiteres Projekt. Auch hier wird wieder das Winsock-Control benötigt (Projekt - Komponenten - Microsoft Winsock Control). Ziehen Sie dieses auf die Form und zusätzlich noch einen Command-Button (Command1).Der Codeteil des Clients sieht wie folgt aus: Option Explicit Private Sub Form_Load() Dim ServerIP As String ' Command1 deaktivieren Command1.Enabled = False ' Die IP-Adresse oder Computer-Name des Servers ServerIP = "MyComputer" ' 1. Parameter: Computername /-ip ' 2. Parameter: Portnummer Winsock1.Connect ServerIP, 12345 End Sub ' Wenn eine direkte Verbindung aufgebaut ist Private Sub Winsock1_Connect() ' Jezt können wir mit dem Button die Nachricht senden Command1.Enabled = True End Sub Private Sub Command1_Click() ' Nachricht an Server senden Winsock1.SendData "Hallo Server!" End Sub ' Wenn die Verbindung geschlossen wird Private Sub Winsock1_Close() ' Ohne Verbindung kann man auch keine ' Nachrichten senden: Button Aus Command1.Enabled = False End Sub
Dieser Tipp wurde bereits 107.679 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Juli 2024 Dieter Otter Beliebige Zeichen am Anfang und Ende eines Strings entfernen Mit der Trim-Funktion lassen sich nicht nur Leerzeichen, sondern bei Bedarf auch beliebige Zeichen entfernen. sevWizard für VB5/6 Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |