IL codice in C gira sotto Linux 9.2, compilatore gcc.
Si tratta sempre di un client e server connessi tra loro tramite socket, con protocollo tcp.

qui riporto la parte del server con la struttura if:

codice:
char x[1024],y[1024];
  unsigned char z,w;
  char buf[1024];
  char buf2[1024];
  do
    {
      send(ds_sock_acc,"\nInserisci fila :",20,0);
      recv(ds_sock_acc,&x,2,0);
      printf("%s",&x);
      if ((strcmp(x,"A")!=0)||(strcmp(x,"B")!=0)||(strcmp(x,"C")!=0)) 
            {
                 send(ds_sock_acc,"\nfila inesistente\n",30,0);
             }
       else (strcpy(buf,"fatto"));
     }
    while (strcmp(buf,"fatto")!=0);
purtroppo nn so perchè questo nn funziona :
if ((strcmp(x,"A")!=0)||(strcmp(x,"B")!=0)||(strcmp(x ,"C")!=0))

se inserisco dal client il carattere A o B o C comunque sia il sever spedisce il messaggio fila inesistente.

modificando cosi' riconosce invece ol carattere A:

if ((strcmp(x,"A")!=0)
{
send(ds_sock_acc,"\nfila inesistente\n",30,0);
}

ma ovviamente nn mi fa gli altri confronti
se modifico ulteriormente cosi

if ((strcmp(x,"A")!=0)
{
send(ds_sock_acc,"\nfila inesistente\n",30,0);
}

else if (strcmp(x,"B")!=0)
{
send(ds_sock_acc,"\nfila inesistente\n",30,0);
}

ritorno al problema iniziale qualsiasi carattrere invio da client poi il server spedisce il messaggio fila inesistente.

nn riesco a capire dove sia la magagna