apelul bind() în programarea socket (Inginerie software, Rețea, Prize, Websockets, Rețele)

Jeevansai Jinne a intrebat.
a intrebat.

Citesc despre programarea socket-urilor și am aflat că ip-ul este atribuit socket-ului cu apelul bind() înainte de conectarea la server.Este corectă gândirea mea despre adresa de legare a adresei de legare înseamnă să legăm orice adresă ip?

Comentarii

  • Dacă țara dvs. folosește un proxy pentru a restricționa site-urile pe care le puteți accesa, atunci este foarte probabil ca toate conexiunile dintre un computer aflat fizic în țara dvs. și un computer aflat fizic în afara țării dvs. trebuie să fie să treacă prin acel proxy. –  > Por Bart van Ingen Schenau.
1 răspunsuri
Martin Sugioarto

bind() definește o relație între socket-ul pe care l-ați creat și adresele care sunt disponibile pe gazda dumneavoastră. De exemplu, puteți lega un socket pe toate adresele sau pe un anumit IP care a fost configurat pe un adaptor de rețea de către sistemul de operare al gazdei.

Iată un exemplu de legare a unui socket la toate adresele disponibile pe gazda care rulează acest cod:

struct sockaddr_in name;

name.sin_family = AF_INET;
name.sin_port = htons (port);
name.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind (socket, (struct sockaddr *) &name, sizeof (name)) < 0) {
    perror ("bind");
    exit (-1);
}

Pentru o aplicație server, utilizatorii doresc uneori să restricționeze socket-ul pentru a fi legat doar la o anumită adresă din motive de securitate sau doar pentru a cartografia serviciile acolo unde doresc să fie disponibile. Acesta este motivul pentru care majoritatea serverelor permit configurarea cu ușurință a adreselor de legare pentru utilizatori cu ajutorul fișierului de configurare a aplicației.

Comentarii

  • astfel încât, în calitate de client, să pot lega doar adresa mea ip sau orice adresă ip –  > Por Jeevansai Jinne.
  • Există deja o întrebare cu răspuns despre acest lucru aici: stackoverflow.com/q/12763268/6769270 –  > Por Martin Sugioarto.