Un errore è qua:
La htons serve per cambiare l' ordine dei bit di un valore nell' ordine in cui deve essere inviato.codice:server_address.sin_addr.s_addr = htons(INADDR_ANY);
sin_addr.s_addr non è un dato che deve essere inviato, è una costante che ti restituisce un indirizzo IP valido, per cui non c'è bisogno di alcuna conversione:
Questo è un errore, ce ne potrebbero essere altri (posta in tal caso).codice:server_address.sin_addr.s_addr = INADDR_ANY;
Ma faresti bene a gestire gli errori, ovvero ogni volta che usi funzione come la socket, la bind, ecc ... controlla che il valore ritornato non sia minore di zero, se è minore di zero usa perror per stampare l' errno ottenuto.

Rispondi quotando