No ... cosa c'entra, come fa ad essere "automatica" la memset?
Quel messaggio si risolve se scrivi
memset((void *)&servip, 0, sizeof(servip));
Comunque
1) inserisci le linee che ti ho indicato, ma tutte, non devi eliminarne
codice:
memset((void *)&servip, 0, sizeof(servip));
servip.sin_family = AF_INET;
servip.sin_addr.s_addr = htonl(INADDR_ANY);
servip.sin_port = htons((unsigned)PORT);
2) elimina la linea
inet_aton(LOCIP, &servip.sin_addr);
3) lascia la linea
servipL=clientipL=sizeof(struct sockaddr_in);
Quindi, il codice sarą, tra il socket e la bind
codice:
socket ...
memset((void *)&servip, 0, sizeof(servip));
servip.sin_family = AF_INET;
servip.sin_addr.s_addr = htonl(INADDR_ANY);
servip.sin_port = htons((unsigned)PORT);
servipL=clientipL=sizeof(struct sockaddr_in);
bind ...
E poi occhio alle parentesi nella chiamata a socket deve essere
codice:
if((servId=socket(PF_INET, SOCK_STREAM, 0))==-1) {
Il problema potrebbe essere proprio questo.