J'utilise la methode Select de la classe Socket pour voir s'il y des
evenements en attente sur plusieurs sockets
public static void Select(
IList checkRead,
IList checkWrite,
IList checkError,
int microSeconds
);
Je voudrais attendre indefiniment sur un evenement. Dans la fonction Win32,
en donnant une valeur -1, cela marchait !
Quelqu'un a t-il une solution ? ( autre que de faire une boucle )
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Bacelar
Si vous ne connaissez pas le superbe outil qu'est reflector, c'est le moment d'y jeter un coup d'oeil.
C'est un décompilateur .NET et avec lui, on peut voir le code source des classes .NET, celles du frameWork y compris.
En utilisant reflector sur l'assembly system.dll et en sélectionnant l'espace de nom puis la classe Socket puis la méthode Select, vous obtiendrez le code le la méthode et vous verrez que l'appel est quasiment directement vers la fonction de WinSock2.0.
Vous pouvez donc vérifiez que -1 devrait toujours fonctionner et si vous ne voulez pas dépendre de l'implémentation M$, vous pouvez toujours utiliser le code comme model pour vous faire un appel en InterOp à WinSock2.0.
Remarquez, je ne sais pas si c'est très légal ?:-|. A vous les Microsofties ;-)
Ce qu'il y a de bien avec .NET, c'est la reflexion ;-) -- Paul Bacelar
"Pascal Simler" wrote in message news:
Bonjour,
J'utilise la methode Select de la classe Socket pour voir s'il y des evenements en attente sur plusieurs sockets
public static void Select( IList checkRead, IList checkWrite, IList checkError, int microSeconds );
Je voudrais attendre indefiniment sur un evenement. Dans la fonction
Win32,
en donnant une valeur -1, cela marchait ! Quelqu'un a t-il une solution ? ( autre que de faire une boucle )
Merci Pascal
Si vous ne connaissez pas le superbe outil qu'est reflector, c'est le moment
d'y jeter un coup d'oeil.
C'est un décompilateur .NET et avec lui, on peut voir le code source des
classes .NET, celles du frameWork y compris.
En utilisant reflector sur l'assembly system.dll et en sélectionnant
l'espace de nom puis la classe Socket puis la méthode Select, vous
obtiendrez le code le la méthode et vous verrez que l'appel est quasiment
directement vers la fonction de WinSock2.0.
Vous pouvez donc vérifiez que -1 devrait toujours fonctionner et si vous ne
voulez pas dépendre de l'implémentation M$, vous pouvez toujours utiliser le
code comme model pour vous faire un appel en InterOp à WinSock2.0.
Remarquez, je ne sais pas si c'est très légal ?:-|. A vous les Microsofties
;-)
Ce qu'il y a de bien avec .NET, c'est la reflexion ;-)
--
Paul Bacelar
"Pascal Simler" <psimler@hotmail.com> wrote in message
news:eyQ1JeTAFHA.2180@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'utilise la methode Select de la classe Socket pour voir s'il y des
evenements en attente sur plusieurs sockets
public static void Select(
IList checkRead,
IList checkWrite,
IList checkError,
int microSeconds
);
Je voudrais attendre indefiniment sur un evenement. Dans la fonction
Win32,
en donnant une valeur -1, cela marchait !
Quelqu'un a t-il une solution ? ( autre que de faire une boucle )
Si vous ne connaissez pas le superbe outil qu'est reflector, c'est le moment d'y jeter un coup d'oeil.
C'est un décompilateur .NET et avec lui, on peut voir le code source des classes .NET, celles du frameWork y compris.
En utilisant reflector sur l'assembly system.dll et en sélectionnant l'espace de nom puis la classe Socket puis la méthode Select, vous obtiendrez le code le la méthode et vous verrez que l'appel est quasiment directement vers la fonction de WinSock2.0.
Vous pouvez donc vérifiez que -1 devrait toujours fonctionner et si vous ne voulez pas dépendre de l'implémentation M$, vous pouvez toujours utiliser le code comme model pour vous faire un appel en InterOp à WinSock2.0.
Remarquez, je ne sais pas si c'est très légal ?:-|. A vous les Microsofties ;-)
Ce qu'il y a de bien avec .NET, c'est la reflexion ;-) -- Paul Bacelar
"Pascal Simler" wrote in message news:
Bonjour,
J'utilise la methode Select de la classe Socket pour voir s'il y des evenements en attente sur plusieurs sockets
public static void Select( IList checkRead, IList checkWrite, IList checkError, int microSeconds );
Je voudrais attendre indefiniment sur un evenement. Dans la fonction
Win32,
en donnant une valeur -1, cela marchait ! Quelqu'un a t-il une solution ? ( autre que de faire une boucle )
Merci Pascal
Simon Mourier [MS]
La doc de select est la suivante: int select( int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, const struct timeval* timeout ); Il faut passer NULL dans timeout pour attendre indéfiniment, et non pas -1 à moins que vous parliez d'une autre fonction?Evidemment si on passe un timeout avec tv_sec et tv_usec à -1, c'est "presque" infini :-)Je ne pense pas que l'implémentation du Socket.Select du .NET Framework prenne le NULL en charge.Dans ce cas, il faut soit utiliser Poll qui peut-être bloquant à la différence de Select, soit passer int.MaxValue ou int.MinValue.Malheureusement le paramètre microSeconds n'est qu'un int.Simon."Paul Bacelar" a écrit dans le message de news: Si vous ne connaissez pas le superbe outil qu'est reflector, c'est le moment
d'y jeter un coup d'oeil.
C'est un décompilateur .NET et avec lui, on peut voir le code source des classes .NET, celles du frameWork y compris.
En utilisant reflector sur l'assembly system.dll et en sélectionnant l'espace de nom puis la classe Socket puis la méthode Select, vous obtiendrez le code le la méthode et vous verrez que l'appel est quasiment directement vers la fonction de WinSock2.0.
Vous pouvez donc vérifiez que -1 devrait toujours fonctionner et si vous ne voulez pas dépendre de l'implémentation M$, vous pouvez toujours utiliser le code comme model pour vous faire un appel en InterOp à WinSock2.0.
Remarquez, je ne sais pas si c'est très légal ?:-|. A vous les Microsofties ;-)
Ce qu'il y a de bien avec .NET, c'est la reflexion ;-) -- Paul Bacelar
"Pascal Simler" wrote in message news:
Bonjour,
J'utilise la methode Select de la classe Socket pour voir s'il y des evenements en attente sur plusieurs sockets
public static void Select( IList checkRead, IList checkWrite, IList checkError, int microSeconds );
Je voudrais attendre indefiniment sur un evenement. Dans la fonction
Win32,
en donnant une valeur -1, cela marchait ! Quelqu'un a t-il une solution ? ( autre que de faire une boucle )
Merci Pascal
La doc de select est la suivante:
int select(
int nfds,
fd_set* readfds,
fd_set* writefds,
fd_set* exceptfds,
const struct timeval* timeout
);
Il faut passer NULL dans timeout pour attendre indéfiniment, et non pas -1 à
moins que vous parliez d'une autre fonction?Evidemment si on passe un
timeout avec tv_sec et tv_usec à -1, c'est "presque" infini :-)Je ne pense
pas que l'implémentation du Socket.Select du .NET Framework prenne le NULL
en charge.Dans ce cas, il faut soit utiliser Poll qui peut-être bloquant à
la différence de Select, soit passer int.MaxValue ou
int.MinValue.Malheureusement le paramètre microSeconds n'est qu'un
int.Simon."Paul Bacelar" <paul.bacelar@PASDESPAMlaposte.net> a écrit dans le
message de news: eHIYAxmAFHA.1388@TK2MSFTNGP09.phx.gbl...> Si vous ne
connaissez pas le superbe outil qu'est reflector, c'est le moment
d'y jeter un coup d'oeil.
C'est un décompilateur .NET et avec lui, on peut voir le code source des
classes .NET, celles du frameWork y compris.
En utilisant reflector sur l'assembly system.dll et en sélectionnant
l'espace de nom puis la classe Socket puis la méthode Select, vous
obtiendrez le code le la méthode et vous verrez que l'appel est quasiment
directement vers la fonction de WinSock2.0.
Vous pouvez donc vérifiez que -1 devrait toujours fonctionner et si vous
ne
voulez pas dépendre de l'implémentation M$, vous pouvez toujours utiliser
le
code comme model pour vous faire un appel en InterOp à WinSock2.0.
Remarquez, je ne sais pas si c'est très légal ?:-|. A vous les
Microsofties
;-)
Ce qu'il y a de bien avec .NET, c'est la reflexion ;-)
--
Paul Bacelar
"Pascal Simler" <psimler@hotmail.com> wrote in message
news:eyQ1JeTAFHA.2180@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'utilise la methode Select de la classe Socket pour voir s'il y des
evenements en attente sur plusieurs sockets
public static void Select(
IList checkRead,
IList checkWrite,
IList checkError,
int microSeconds
);
Je voudrais attendre indefiniment sur un evenement. Dans la fonction
Win32,
en donnant une valeur -1, cela marchait !
Quelqu'un a t-il une solution ? ( autre que de faire une boucle )
La doc de select est la suivante: int select( int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, const struct timeval* timeout ); Il faut passer NULL dans timeout pour attendre indéfiniment, et non pas -1 à moins que vous parliez d'une autre fonction?Evidemment si on passe un timeout avec tv_sec et tv_usec à -1, c'est "presque" infini :-)Je ne pense pas que l'implémentation du Socket.Select du .NET Framework prenne le NULL en charge.Dans ce cas, il faut soit utiliser Poll qui peut-être bloquant à la différence de Select, soit passer int.MaxValue ou int.MinValue.Malheureusement le paramètre microSeconds n'est qu'un int.Simon."Paul Bacelar" a écrit dans le message de news: Si vous ne connaissez pas le superbe outil qu'est reflector, c'est le moment
d'y jeter un coup d'oeil.
C'est un décompilateur .NET et avec lui, on peut voir le code source des classes .NET, celles du frameWork y compris.
En utilisant reflector sur l'assembly system.dll et en sélectionnant l'espace de nom puis la classe Socket puis la méthode Select, vous obtiendrez le code le la méthode et vous verrez que l'appel est quasiment directement vers la fonction de WinSock2.0.
Vous pouvez donc vérifiez que -1 devrait toujours fonctionner et si vous ne voulez pas dépendre de l'implémentation M$, vous pouvez toujours utiliser le code comme model pour vous faire un appel en InterOp à WinSock2.0.
Remarquez, je ne sais pas si c'est très légal ?:-|. A vous les Microsofties ;-)
Ce qu'il y a de bien avec .NET, c'est la reflexion ;-) -- Paul Bacelar
"Pascal Simler" wrote in message news:
Bonjour,
J'utilise la methode Select de la classe Socket pour voir s'il y des evenements en attente sur plusieurs sockets
public static void Select( IList checkRead, IList checkWrite, IList checkError, int microSeconds );
Je voudrais attendre indefiniment sur un evenement. Dans la fonction
Win32,
en donnant une valeur -1, cela marchait ! Quelqu'un a t-il une solution ? ( autre que de faire une boucle )