SocketExeption C# [Résolu]

maynalysa 8 Messages postés mardi 15 décembre 2009Date d'inscription 4 février 2010 Dernière intervention - 18 janv. 2010 à 14:37 - Dernière réponse : maynalysa 8 Messages postés mardi 15 décembre 2009Date d'inscription 4 février 2010 Dernière intervention
- 2 févr. 2010 à 00:38
Bonjour à tous,
J'effectue la création d'un socket de la façon suivante:
Socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);

Mais j'obtiens à l'éxecution de cette ligne l'erreur suivante:
System.Net.Sockets.SocketException (0x80004005) : Une tentative d'accès à un socket de manière interdite par ses autorisations a été tentée at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketTypesocketType, ProtocolType protocolType)

Je n'arrive pas à comprendre pourquoi!
Pourtant la création que je fais me semble tout à fait correcte.
Merci d'avance de votre aide!
maynalysa
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 2 févr. 2010 à 00:11
1
Merci
Bonjour,

Si mes souvenirs sont bons, la création de sockets de type raw nécessite de disposer de privilèges administratifs.

/*
coq
MVP Visual C#
CoqBlog
*/

Merci cs_coq 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de cs_coq
maynalysa 8 Messages postés mardi 15 décembre 2009Date d'inscription 4 février 2010 Dernière intervention - 18 janv. 2010 à 16:20
0
Merci
Après tests sous plusieurs plate forme, je me suis rendue finalement compte que le problème était issu du système d'exploitation: VISTA !
Je ne sais pour quelle raison, cette ligne ne passe pas sous vista, par contre contre aucuns soucis sous XP.
comme quoi....


maynalysa
Commenter la réponse de maynalysa
maynalysa 8 Messages postés mardi 15 décembre 2009Date d'inscription 4 février 2010 Dernière intervention - 2 févr. 2010 à 00:38
0
Merci
Oui effectivement. J'ai trouvé la solution à ce problème.
Il faut être admin pour créer des raw sockets sur la plupart des OS.
Donc rajouter un manifest à l'application pour lui dire de s'exécuter en admin:

Clic droit sur le projet -> Add new item -> Application Manifest File -> Ok
Remplacer cette ligne
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
par celle à
<requestedExecutionLevel level="requireAdministrator"/>

voilà !
Commenter la réponse de maynalysa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.