Quand un connecté UDP socket être fermé par l'OS?

J'ai un UDP descripteur de fichier dans un programme C++ fonctionnant sous Linux. J'appelle connect() sur elle pour se connecter à une adresse distante, puis lire et à écrire à partir de cette prise.

Selon UNIX Réseau de Programmation, "Asynchrone erreurs sont renvoyées au processus pour les sockets UDP." Je devine que ces erreurs asynchrones sera la cause de la socket UDP être fermée par le système d'exploitation, mais le livre n'est pas clair. Il n'est pas clair quels sont les types d'erreurs asynchrones sont possibles, mais il est suggéré que, si le port sur la machine distante n'est pas ouvert, le socket est fermé.

Donc ma question est: dans quelles conditions Linux fermer l'UDP descripteur de fichier?

  • Mauvais numéro de port?
  • Mauvaise adresse IP?
  • Tout les autres?
  • Socket UDP ne peut pas être connecté, cochez en.wikipedia.org/wiki/Berkeley_sockets#Client_2
  • Non, ils peuvent lire la page de man pour connect(): "Si s est de type SOCK_DGRAM, il spécifie de façon permanente par les pairs à laquelle les messages sont envoyés." Comme je l'ai mentionné dans la question, UNIX Réseau de Programmation des états que des erreurs asynchrones sera retourné pour connecté les sockets UDP.