Volevo chiedere aiuto su un errore che ho quando provo a lanciare un semplice server e client su Linux. Spero di non aver sbagliato sezione, altrimenti correggo subito.

I codici utilizzati sono:

server.c
codice:
#include <stdio.h>#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <time.h>
int main(int argc, char **argv)
{
  int          ncon=0,listenfd, connfd;
  struct sockaddr_in  servaddr;
  char        buff[4096];
  time_t        ticks;  
  if ( ( listenfd = socket(AF_INET, SOCK_STREAM, 0) ) < 0 ) {
    perror("socket");
    exit(1);
    }
  servaddr.sin_family      = AF_INET;
  servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  servaddr.sin_port        = htons(1024);
  if ( bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0 ) {
    perror("bind");
    exit(1);
  }
  if ( listen(listenfd, 1024) < 0 ) {
    perror("listen");
    exit(1);
  }
for ( ; ; ) {
    if ( ( connfd = accept(listenfd, (struct sockaddr *) NULL, NULL) ) < 0 ) {
      perror("accept");
      exit(1);
    }
    ticks = time(NULL);
    snprintf(buff, sizeof(buff), "Sei il client numero %d , %.24s\r\n", ncon,ctime(&ticks));
    if ( write(connfd, buff, strlen(buff)) != strlen(buff)) {
      perror("write");
      exit(1);
    }
    close(connfd);
    ncon++;
  }
}
client.c
codice:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>


int main(int argc, char **argv)
{
  int                sockfd, n;
  char               recvline[1025] ;
  struct sockaddr_in servaddr;
  if (argc != 2) {
    fprintf(stderr,"usage: %s <IPaddress>\n",argv[0]);
    exit (1);
  }
  if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
    fprintf(stderr,"socket error\n");
    exit (1);
  }
    servaddr.sin_family = AF_INET;
    servaddr.sin_port   = htons(1024);
    if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) < 0) {
      fprintf(stderr,"inet_pton error for %s\n", argv[1]);
      exit (1);
    }
  
  if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0) {
    fprintf(stderr,"connect error\n");
    exit(1);
  }
  while ( (n = read(sockfd, recvline, 1024)) > 0) {
    recvline[n] = 0;
    if (fputs(recvline, stdout) == EOF) {
      fprintf(stderr,"fputs error\n");
      exit(1);
    }
  }
  if (n < 0) {
    fprintf(stderr,"read error\n");
    exit(1);
  }
  exit(0);
}
Quando lancio il server tramite linea di comando parte, ma quando lancio anche il client va in loop e si ferma al Connect Error...Non credo che sia un errore di codice siccome dal pc di un altro mio amico funziona tutto correttamente con i file identici.

Qualcuno sa darmi qualche dritta per risolvere? Ringrazio anticipatamente per l'aiuto.