Ciao raga... mi stavo esercitando con le soclets... ho realizzato un programmino server-side, però non lo ho ancora testato anche perchè devo sviluppare il client... uso il protocollo TCP con IPv4

codice:
/*************************************************************************************/
/********* PaTeR - New Scripting Generation                                  *********/
/********* Socket Script Example - Function: Server                          *********/
/*************************************************************************************/

// Including required headers
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>

// Constants
#define MAX_MSG		1024
#define PORT		1991
#define PROTOCOL	PF_INET
#define TYPE		SOCK_STREAM
#define FAMILY		AF_INET

// Functions:
int main();

// Starting Script
main()
{
	// Initializing Socket structures
	struct sockaddr_in cliAddr, servAddr;

	// Init buffer for line to display
	char line[MAX_MSG];
	
	// Opening a socket stream: int socket(int domain, int type, int protocol)
	int sockfd = socket(PROTOCOL, TYPE, 0);

	// Control for incoming socket
	if(sockfd <= 0) perror("Cannot create socket");

	// Adjusting bind configuration, modifying struct variables
	servAddr.sin_family = FAMILY;
	servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
	servAddr.sin_port = htons(PORT);

	// Assign a local address to a socket: int bind(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen)
	int bindc = bind(sockfd, (struct sockaddr *) &servAddr, sizeof(servAddr));

	// Control for bind
	if(bindc < 0) perror("Cannot bind socket");

	// Start 'passive socket': int listen(int sockfd, int backlog)
	int listenc = listen(sockfd, 5);

	// Control for incoming socket
	if(listenc < 0) perror("Cannot start 'passive socket'");

	// Start an infinite loop
	while(1)
	{
		// Defining cliAddr size in cliLen
		int cliLen = sizeof(cliAddr);

		// Accept connection
		int ccept = accept(sockfd, (struct sockaddr *) &cliAddr, &cliLen);

		// If cannot accept connection
		//if(ccept < 0) perror("Cannot accept connection ");

		// Receive data
		int result = recv(ccept, line, MAX_MSG, 0);

		// Control for received data and print something
		if(result == 0)
		{
			// Client closed connection
			perror("Connection closed by Client");
		}
		else
		{
			if(result < 0)
			{
				// Cannot receive data
				// perror("Cannot receive Data");
			}
			else
			{
				// Data received: Showing it
				printf("Data received: %s", line);
			}
		}
	}
}
la compilazione è ok, e va senza errori...
dite che va bene??

Ho cercato di usare IPv6 solo che mi dava alcuni errori mentre cerfavo di definire sin6_addr.in6_addr, con htonl(INADDR_ANY) mi diceva che i tipi erano incompatibili... dopo proverò con in6addr_any. intanto che mi dite? è un buon inizio per un dilettante come me? un esempio di client è facile da realizzare? grazie