Binde socket til standard netkort
Hej,Jeg har et program der har en socket der skal bindes til den lokale adresse. Der findes flere netkort på computeren og derfor skal der altså bindes til det "rigtige" netkort
lidt kode:
// Find hostname for computeren
gethostname(host_name, sizeof(host_name));
hp = gethostbyname(host_name);
// Check om NULL pointer
if (hp == NULL)
{
destroySocket(sd);
return false;
}
//Hvordan finder vi ud af, hvor mange netkort der er???
//Ikke sådan her...
int lastNC = sizeof(hp->h_addr_list) -4; //-4 hvis der er 1 netkort, -3 hvis der er 2
// Assign adressen for std netkort
client.sin_addr.S_un.S_un_b.s_b1 = hp->h_addr_list[lastNC][0];
client.sin_addr.S_un.S_un_b.s_b2 = hp->h_addr_list[lastNC][1];
client.sin_addr.S_un.S_un_b.s_b3 = hp->h_addr_list[lastNC][2];
client.sin_addr.S_un.S_un_b.s_b4 = hp->h_addr_list[lastNC][3];