2010-08-05 5 views

Répondre

2

Si vous devez accepter les connexions, alors non, vous ne pouvez pas faire cela sans appeler listen.

Si vous pouvez faire votre demande juste un client et avoir un serveur exécutant un autre endroit, votre client peut se connecter au serveur et le serveur peut agir à titre de courtier pour d'autres clients de se connecter ...

I Je ne m'inquiéterais pas de ça de toute façon. Si vous utilisez un serveur auquel vous souhaitez vous connecter à partir d'une machine autre que celle sur laquelle il s'exécute, votre documentation devra expliquer comment ouvrir les ports du pare-feu et ainsi ajouter des détails sur la façon d'exclure application à partir des applications antivirus qu'il confond.

En outre, votre application accepte les connexions provenant de sources externes et l'application antivirus est donc correcte pour avertir l'utilisateur. Vous devez informer l'utilisateur qu'il est normal que votre application le fasse car elle le fait pour toute raison valable. Si vous ne voulez pas l'expliquer à l'utilisateur puis, à mon humble avis, vous écrivez une porte dérobée;)

+0

je ne suis pas si bon, je ne peux pas écrire une porte dérobée :) j'étudie la bible du tanenbaum, j'ai essayé d'écrire une petite application se référant au code expliqué, mais avira ne l'aime pas ... Cependant, vous avez raison, il est bon que les applications bloquent l'acceptation des connexions pour des problèmes de sécurité. merci Len! – Phill

0

Désinstaller Avira Antivirus

serveur, par définition, écoute les connexions entrantes et clients initient connexions au serveur. Dans le réseau TCP/IP, le serveur réalise ceci par bind() et listen() sur un socket.

0

Avira est rempli de toutes sortes de faux positifs qui sont trivialement faciles à contourner. Essayez de stocker écouter dans un pointeur de fonction et l'appeler. Ça va probablement marcher.

+0

je vais essayer, merci;) – Phill

0

Si vous avez affaire à des connexions TCP et que vous savez d'où provient la connexion, et si un tiers peut vous dire quand la connexion va être tentée, il est valide pour les deux côtés de connect de l'autre en même temps. Faire cela peut négocier une connexion sans l'écoute de chaque côté. Ce n'est pas une bonne solution et nécessite une implémentation beaucoup plus complexe si un NAT est impliqué, mais c'est une possibilité si le client et le serveur sont sur un LAN.