2011-01-24 4 views
0

Je dois implémenter un client TCP qui enverra des données au serveur et recevra également des messages. Le modèle de communication doit être asynchrone. Avez-vous un bon exemple de cela? Ai-je besoin de l'implémenter sur un autre thread ... qui ne cesse de lire depuis le socket? ... ou je peux utiliser le pattern BeginReceive de la socket?.net client async modèle tcp

Merci, Radu

Répondre

1

Lorsque vous vous connectez via TCP sur le serveur que vous obtenez un canal duplex de sorte que le serveur peut parler au client dans la même prise. A propos de l'utilisation de la réception de début, vous pouvez l'utiliser pour éviter de créer des threads de travail et de lire constamment le socket (de la même manière que vous pouvez utiliser BeginSend). Sans plus d'informations sur ce que vous essayez de faire, c'est le mieux que je puisse vous donner ... oui vous pouvez. :)

+0

savez-vous un article qui me montre comment définir une classe (session dans mon cas) qui a une méthode pour envoyer des messages et reçoit constamment tous les messages du serveur. Le problème est que j'envoie un message et j'attends une réponse après un certain temps ... mais dans ce temps le serveur peut m'envoyer beaucoup de messages. –

+0

Pas vraiment, mais ce que vous voulez est de faire un BeginReceive et dans le AsyncCallback faire un autre BeginReceive (de sorte que vous bouclez en recevant de manière asynchrone). Bien sûr, la gestion du protocole d'application lorsque vous parlez d'envois et de reçus non séquentiels est une autre histoire. –

+0

Je pense que j'ai raté cette partie avec un autre BeginReceive –