Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22

Discussione: [C/C++] Shell remota

  1. #11
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Va bene anche il 6

  2. #12
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    ok perfetto...
    dunque:
    il "centro di controllo client" e la "shell server" vanno...
    il problema è il loro opposto, ovvero:
    "centro di controllo server" e la "shell client"

    grazie ancora ciao

  3. #13
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La prima osservazione (generale) riguarda queste linee di codice

    codice:
    	sendrecv = InitClientSocket("127.0.0.1", 4444);
    	if (sendrecv == 0){
    		MessageBox(0,"connessione non avvenuta","shell",MB_OK);
    	}
    Se la connessione non avviene, tu mostri il messaggio ... ma continui tranquillamente ad eseguire il resto del programma!

  4. #14
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    eh si... hai ragione...ma comunque nelle prove che ho fatto fin ora apro sempre prima il server, quindi nn mi ha mai dato quell'errore...

  5. #15
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    nient'altro?? non credevo fosse un problema così difficile....

  6. #16
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    C'e' anche da dire che in questo ciclo

    codice:
    while(TRUE)
    {
       iBytes = recv(sServerSock,pBuffer,2000,0);
       pBuffer[iBytes] = '\0';
       printf("%s",pBuffer);
       if(pBuffer[iBytes-1] == '>') break;
    }
    se la recv non opera correttamente (per un qualsiasi motivo) e restituisce un errore, tale errore non viene testato e il codice restituito (iBytes) viene comunque considerato un valore valido, con ovvie conseguenze.

  7. #17
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    gia...
    ma il problema è che non capisco xche quando la shell è il server il codice va alla perfezione (tranne per il fatto che se chiudo il server il client mi da errore per il motivo che mi hai appena postato)... ho solo invertito il metodo di connessione... il resto è invariato...

  8. #18
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Intanto devi evitare che un errore che avviene durante la recv possa generare il problema di accesso in memoria ... poi, dal codice dell'errore, comprendi perche' in una determinata situazione, si genera l'errore ...

  9. #19
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Originariamente inviato da oregon
    Intanto devi evitare che un errore che avviene durante la recv possa generare il problema di accesso in memoria ... poi, dal codice dell'errore, comprendi perche' in una determinata situazione, si genera l'errore ...
    quindi hai trovato l'errore???

  10. #20
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    ok grazie al tuo consiglio ho aggiunto al mio codice questo
    codice:
    while(TRUE)
    {
       iBytes = recv(sendrecv,pBuffer,64000,0);
       if (iBytes<0){ 
    	printf("\nRECV() ERROR\n");
    	break;
       }
       pBuffer[iBytes] = '\0';
       printf("%s",pBuffer);
       if(pBuffer[iBytes-1] == '>') break;
    }
    e mi è appunto uscito il segnale di errore che avevo impostato, ovvero in questo caso RECV() ERROR
    quindi il problema è che il client non riesce ad assegnare lo standard input di cmd.exe direttamente alla socket, giusto???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.