2009-01-07 10 views

Répondre

1

Vous devriez lire sur la classe TcpClient, le codage réseau n'est pas aussi rapide que glisser dans la version 6, mais vous avez beaucoup plus de contrôle sur le protocole.

De même, il existe un certain nombre de bibliothèques de clones WinSock qui agissent et s'interfacent de la même manière que l'équivalent vb6.

3

Vous n'avez pas exactement le comportement comme dans VB6/Delphi et vous avez des méthodes Async et des événements pour faire des choses comme, par exemple: AsyncTCP Client

0

Il n'y a pas une telle classe disponible dans le framework .Net afaik.

Il est assez facile de créer une classe avec OnConnect, OnReceive etc qui encapsule la classe socket. Et si vous êtes inexpérimenté en faisant des cours qui envoient des événements, c'est une très bonne expérience d'apprentissage.

C'était la première chose que j'ai faite quand je suis passé de VB6 à .Net et que j'ai eu besoin de "winsock".

1

La réponse courte est: En utilisant des techniques de multithreading. La réponse longue est que les événements ne sont en fait qu'un signal généré par un autre code qui vérifie en permanence un ensemble de circonstances particulier. Par exemple, une partie très simple code responsable de l'événement est DataAvailable pourrait ressembler à ceci:

While Socket Is Connected 
    If Data Is Available Raise Event DataAvailable 
Loop 

La bibliothèque .Net a une classe Socket que vous pouvez envelopper avec une classe que vous concevez à se comporter un peu plus comme la classe Winsock qui était disponible dans VB6. Une fois que vous avez parcouru la documentation de la classe Socket et appris comment créer des événements personnalisés pour une classe, il n'est pas difficile d'imaginer comment un tel wrapper pourrait être conçu. Le véritable obstacle pour la plupart des développeurs venant de VB6 (et pour moi) est que vous devez en apprendre un peu plus sur les applications multithread pour que cela fonctionne correctement.

Vous pouvez probablement trouver un tel emballage en faisant un peu de recherche, mais je vous encourage fortement à au moins essayer d'écrire le vôtre. Avec les machines à âme unique devenant rapidement une chose de l'expérience passée avec les techniques de multithreading va devenir une exigence de tout programmeur décent.

Questions connexes