¿Cómo entender bind(sockfd, (struct sockaddr *)(amp; server_addr), sizeof(struct sockaddr)) en la programación de sockets en Linux?
(struct sockaddr *)(& server_addr) Esta es una conversión de tipo forzada, que obliga a struct & server_addr a convertirse al tipo struct sockaddr *. Esto entra en la categoría de lenguaje C.
Debido a que solo podemos crear y completar estructuras sockaddr_in y sockaddr_in6 y los campos en ellas, pero muchos parámetros de socket solo pueden aceptar estructuras de tipo sockaddr, tenemos que convertir aquí, y en mi En memoria, el connect( ) la función también realiza conversiones.