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.428 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
||||||||||||||||
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. |