vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Winsock in VB.NET 
Autor: Bossi35
Datum: 18.10.17 10:41

Hallo zusammen,

ich bin neu hier und hoffe hier ein wenig Hilfe zu bekommen.

Ich programmiere seit etwa 15 Jahren inm VB6.
Das meiste habe ich mir selbst beigebracht.
Nun wird es Zeit dass ich mal auf VB.NET umsteige

Hier habe ich auch schon mein erstes Problem:

In VB.NET gibt es ja das Winsock-Steuerelemt nicht, welches ich häufig verwende.

Ich habe über diverse Google-Suchen schon herausgefunen dass man hier stattdessen wohl die TCPClient-Klasse verwenden sollte.

Hier gibt es aber keine Ereignisse wie z.B. DataArrival bei Winsock.

Kannm ir hier vlt. bitte jemand Hilfestellung geben?

Schönen Gruß
Bossi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Winsock in VB.NET 
Autor: Manfred X
Datum: 18.10.17 12:30

Hallo!

Meinst Du so eine Lösung (nicht ausprobiert)?
https://www.codeproject.com/Articles/21443/Winsock-Revamped
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Winsock in VB.NET 
Autor: Bossi35
Datum: 18.10.17 14:11

Hallo,

das habe ich auch schon gefunden.
Hier wird wohl das Wonsock-Steuerelent aus VB6 nachgebildet.
Allerdings ist der Code seeehr komplex und ich steige da nicht so ganz durch was da genau passiert.

Im Prinzip möchte ich mit meiner Anwendung nur über die TCPConnect-Klasse eine Verbindung aufbauen, Daten senden, empfangen und die verbindung trennen.

Mein Problem ist, dass ich momentan permanent manuell "prüfen" muss ob Daten angekommen sind.

Leider bin ich mit VB.NET noch nicht sehr vertraut, wie sich sowas elegant lösen lässt...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Winsock in VB.NET 
Autor: Manfred X
Datum: 18.10.17 15:16

Du könntest jeder Sendung eine Zahl voranstellen, die der Anzahl der
gesendeten Bytes entspricht.
Der Empfänger prüft die Zahl der empfangenen Bytes und sendet eine
Quittung zurück.
Zu einer präzisen (byte-genauen) Prüfung kann die gesamte Sendung
nach dem Erhalt "retour" geschickt und vom Sender abgeglichen
werden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Winsock in VB.NET 
Autor: Bossi35
Datum: 18.10.17 18:29

Ich glaube ich habe mein "Problem" falsch erklärt.

Ich versuche es an einem Beispiel:

In VB6 verbinde ich mich über die Connect-Methode des Winsock-Steuerelements:

Winsock1.Connect "192.168.88.55", 9300

Das Programm läuft weiter, und sobald die Verbindung aufgebaut wurde, wird das Connect-Ereignis des Winsock-Steuerelements aufgerufen.

Wenn Daten ankommen wird das DataArrival-Ereignis aufgerufen und mit der GetData-Methode kann ich die Daten dann abrufen.

Die TCPClient-Klasse bei VB-Net hat aber keine Ereignisse.

Problem 1:
Stelle ich die Verbindung über die Connect-Methode der TCPClient-Klasse her, stoppt das Programm an der Stelle, und läuft nicht weiter bis die Verbindung steht.

Problem 2:
Über die GetStream-Methode der TCPClient-Klasse kann ich zwar Empfangene Daten abrufen, ich "merke" aber nicht anhand eines Ereignisses, wie beim Winsock-Steuerelement, wann Daten da sind.

Hoffe ich habe das nun etwas verständlicher geschildert...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Winsock in VB.NET 
Autor: Kuno60
Datum: 21.10.17 19:38

Zitat:


Problem 1:
Stelle ich die Verbindung über die Connect-Methode der
TCPClient-Klasse her, stoppt das Programm an der Stelle, und
läuft nicht weiter bis die Verbindung steht.


Damit das Programm nicht stoppt, kannst du "BeginConnect", "EndConnect" oder "ConnectAsync" verwenden.
Durch Abfrage von "Connected" kannst du feststellen, ob die Verbindung besteht.

Zitat:


Problem 2:
Über die GetStream-Methode der TCPClient-Klasse kann ich zwar
Empfangene Daten abrufen, ich "merke" aber nicht
anhand eines Ereignisses, wie beim Winsock-Steuerelement,
wann Daten da sind.


Da es beim TcpClient keine Ereignisse gibt, musst du selbst prüfen, durch Abfrage von "Available" ob Daten empfangen wurden. Das kannst du mit einem Timer, BackgroundWorker oder Task machen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Winsock in VB.NET 
Autor: sv00010
Datum: 21.10.17 20:09

Ich habe hier zufällig ein YouTube-Video gefunden:

https://www.youtube.com/watch?v=MSiBbtxWpI8
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel