Stavo provando ad implementare una socket di un server che puņ accettare connessioni da un client, ho errori nell' esecuzione al momento del bind....sembrerebbe che voglia fare eseguire una operazione tipica delle socket a qualcosa che non č una socket...ecco il codice:

codice:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <errno.h>
#include <unistd.h>

#define LOCIP "127.0.0.1"
#define BUFFSIZE 1024
#define PORT 2000
#define CONNECTIONS 512

int main(int argc, char * arv[])
{
	int servId, clientId, /*s,*/ retcode;         //ID Server, Client, contatore byte
	struct sockaddr_in servip, clientip;          //Strutture per indirizzo ip server e client 
	socklen_t servipL, clientipL;                 //lunghezza indirizzi
	char buffer[BUFFSIZE];
	char msg[BUFFSIZE];
	
	if((servId=socket(PF_INET, SOCK_STREAM, 0)==-1)){        //apertura socket server
	perror("Error...creating socket...");
	exit(-1);
	}
	
	servip.sin_family=AF_INET;                     //settaggio dominio e porta server
	servip.sin_port=htons((unsigned)PORT);
	
	inet_aton(LOCIP, &servip.sin_addr);            //assegnazione indirizzo intero alla struttura mediante conversione 
	
	servipL=clientipL=sizeof(struct sockaddr_in);        //memorizzazione lunghezza indirizzo 
	
	
	if((bind(servId, (struct sockaddr *)&servip, servipL))==-1){             //assegnazione indirizzo server per la rete
		perror("Error trying to bind");
		exit(-2);
	 }
	
	listen(servId, CONNECTIONS);   //attesa di connessioni...
	
	while((clientId=accept(clientId, (struct sockaddr *) &clientip, &clientipL)!=-1)){       //accetazione connesioni da parte di client
		
		printf("Client from %s/%d connected\n", 
		       inet_ntoa(clientip.sin_addr), 
		       ntohs(clientip.sin_port));                                 //stampa indirizzo e porta del client 
											
											
		while((retcode=read(clientId, &buffer, BUFFSIZE))>0){                  //ricevo byte e stampo
			buffer[retcode-1]='\0';
			printf("Client asks: %s", buffer);
			buffer[retcode-1]='\n';
			 								
		}
		
		close(clientId);                                  //chiudo connessione con il client            
		printf("%s", "Connection with client closed");   
	}
	
	
	exit(0);
}