Je n'ai aucune idée claire lorsque je dois utiliser la fonction BIND (). Je suppose que cela devrait être utilisé chaque fois que je dois recevoir des données (I.E. RECV () ou RECVFROM ()) Que j'utilise TCP ou UDP, mais quelqu'un m'a dit que ce n'est pas le cas. P>
Quelqu'un peut-il clarifier un peu? P>
EDIT STRUT> J'ai lu les réponses mais je ne suis pas si claire. Prenons un exemple où j'ai un client UDP qui envoie les données au serveur, puis pour obtenir une réponse. Je dois utiliser lier ici, non? P>
5 Réponses :
Si vous écrivez le client, il n'est pas nécessaire que vous puissiez appeler BIND () code> est utile lorsque vous écrivez un serveur qui attend des données de clients en "écoute" à un port connu. Avec
BIND () CODE> Vous pouvez définir le port sur lequel vous allez
écouter () code> avec la même prise. P>
Bind () code> - Vous pouvez simplement appeler
recv () code> pour obtenir les données envoyées de le serveur. Votre port local sera défini sur une valeur «éphémère» lorsque la connexion TCP est établie. P>
Vous utilisez Bind code> quand vous souhaitez lier à une adresse locale. Vous utilisez principalement ceci pour ouvrir une prise d'écoute sur une adresse / port spécifique, mais elle peut également être utilisée pour corriger l'adresse / le port d'une connexion TCP sortante. P>
Vous devez appeler BIND () uniquement sur votre serveur. Il est nécessaire surtout pour la liaison A #Port à votre prise. p>
Cette réponse est un peu collée, mais je pense que cela aidera. P>
Lorsque nous effectuons une mise en réseau informatique, nous faisons vraiment une communication inter-processus. Disons sur votre propre ordinateur que vous avez eu deux programmes qui souhaitaient se parler. Vous pouvez utiliser un tuyau pour envoyer les données d'un programme à un autre. Quand vous dites Lorsque vous faites cela, une personne doit garder une trace de l'ID de processus (PID) de chaque processus. Ce PID est un identifiant unique pour chaque processus et nous aide à suivre que les processus "source" et "destination" sont destinés aux données que nous voulons transférer. P>
permet donc maintenant de dire que vous avez des données d'un serveur Web que vous souhaitez transférer sur un navigateur. Eh bien, il s'agit du même scénario que ci-dessus - Communication interprocessé entre deux programmes, le "serveur" et "navigateur". P>
Sauf cette fois ces deux programmes sont sur différents ordinateurs. Le mécanisme de communication interprocessive sur deux ordinateurs s'appelle des "prises". P>
si génial. Vous prenez des données, lobez-la sur le fil et l'autre ordinateur le reçoit. Sauf que cet ordinateur ne sait pas quoi faire avec ces données. Rappelez-vous que nous avons dit que nous avions besoin d'une PID pour savoir quels processus communiquent-ils? La même chose est vraie dans la mise en réseau. Lorsque votre ordinateur reçoit des données HTML, comment sache-t-elle de l'envoyer à "Firefox" plutôt que "Pidgin"? P>
Eh bien, lorsque vous transmettez des données de réseau, vous spécifiez qu'il va sur un "port" spécifique. Le port 80 est généralement utilisé pour Web, Port 25 pour Telnet, Port 443 pour HTTPS, etc. P>
et que "port" est lié à un identifiant de processus spécifique sur la machine. C'est pourquoi nous avons des ports. C'est pourquoi nous utilisons Cela devrait expliquer les réponses que les gens ont affiché. Si vous êtes un expéditeur, vous ne vous souciez pas de ce que le port sortant est, vous n'utilisez donc généralement pas Pour répondre à votre question HW, oui, vous souhaitez probablement utiliser BIND () pour votre serveur. Mais les clients n'ont pas besoin d'utiliser BIND () - ils doivent simplement s'assurer qu'ils transmettent des données sur n'importe quel port que vous avez choisi. P> ls | grep pdf code> Vous prenez la sortie de
ls code> et l'alimentant dans
grep code>. De cette manière, vous avez une communication unidirectionnelle entre les deux programmes distincts
ls code> et
grep code>. P>
bind () code>. Afin de dire à l'expéditeur quel processus devrait recevoir nos données. P>
Bind () code> pour spécifier ce port. Si vous êtes un destinataire, tout le monde doit savoir où chercher vous. Donc, vous
BIND () CODE> Votre programme au port 80, puis dites à chacun de vous assurer de transmettre des données là-bas. P>
Après avoir lu votre question mise à jour. Je suggérerais de ne pas utiliser Pour plus d'aide Voir ce Tutoriel P>
Bind () Code> Fonction lors de l'appels client. La fonction est utilisée lors de la rédaction de votre propre serveur, pour lier la prise (créée après avoir effectué un appel sur
socket () code>) à une adresse physique. P>
p>
J'ai édité la réponse pour ajouter un exemple sur lequel j'ai besoin de clarification