Ho iniziato lo studiio dei socket sotto linux, ho scritto un semplice client daytime :

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

#define MAX 64

int main(int argc, char * argv[]) {

	int sock, n_read; 
	struct sockaddr_in sock_addr; 
	char buf[MAX]; 	

	
	if ( argc != 2) {
		 fprintf (stderr,"Parametri inseriti non corretti\n"); 
		 return 1;
	}	

	if ( sock = socket(AF_INET, SOCK_STREAM, 0) < 0) {
		fprintf(stderr,"Socket non creato corretamente\n"); 
		return 1; 
	}
	sock_addr.sin_family = AF_INET; 
	sock_addr.sin_port = htons(13); 

	if ( inet_pton(AF_INET, argv[1] , &sock_addr.sin_addr) <= 0) { 
		fprintf(stderr,"Trasformazione indirizzo non riuscita\n"); 
		return 1; 
	}	

	if (  connect(sock, ( struct sockaddr *) &sock_addr, sizeof(sock_addr)) < 0) {
		fprintf(stderr,"Connessione non riuscita\n"); 
		return 1; 
	}

	while ( n_read = read ( sock, buf, MAX) > 0) {
		buf[n_read] = 0; 
		printf("%s\n", buf); 
		} 

	if ( n_read < 0) { 
		fprintf(stderr,"Errore nella lettura dei dati\n"); 
		return 1; 
	}

	close(sock); 

	return 0; 

}
ma se prov a connetermi al mio ip non va.... ho attivato il server inetd decomentando la riga daytime !!!