2010-11-14 3 views
2

Lors de l'utilisation de sockets asynchrones, en particulier, Socket.ReceiveAsync, est-il possible de faire une réception «partielle»? Par exemple, je voudrais spécifier que j'attends 1024 octets sur l'objet SocketAsyncEventArgs, mais que je ne veux en autoriser qu'une partie; par exemple, 512 octets. Donc, au lieu d'attendre que tous les 1024 octets soient disponibles, j'aimerais qu'il rappelle avec ces 512 octets.C#: Socket.ReceiveAsync et réception partielle

Est-ce possible avec des sockets asynchrones? Ou dois-je recourir à un mode synchrone non bloquant?

Merci d'avance.

Répondre

1

Il s'avère que ce que j'ai décrit dans la question est exactement comment cela fonctionne; si on spécifie 1024 octets, les octets reçus peuvent être n'importe quoi < = 1024 octets.

0

Spécifiez simplement combien vous avez besoin. Le reste sera encore la prochaine fois, sauf si vous parlez de UDP ...

+0

Le problème est, je ne peux pas savoir combien j'ai besoin. Le client ne me le dit pas. D'où la raison pour laquelle je veux simplement mettre en mémoire tampon tout ce que je peux obtenir du flux réseau. –