SocketExeption C# [Résolu]

Messages postés
8
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
4 février 2010
- - Dernière réponse : maynalysa
Messages postés
8
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
4 février 2010
- 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 

3 réponses

Meilleure réponse
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
75
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
*/

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 219 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_coq
Messages postés
8
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
4 février 2010
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
Messages postés
8
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
4 février 2010
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