Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C++] Dubbi e problemi sul socket
Forum - C/C++ - [C++] Dubbi e problemi sul socket

Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 15:28
Mercoledì, 14/10/2009
Ciao a tutti, ho appena creato un gioco molto carino in c++ e volevo implementare una modalità online, la mia idea è quella di inviare una stringa ad una pagina web in php che la aggiunge nel database, e un'altra pagina web in php mostra la stringa appena ricevuta.
Adesso io volevo ricevere una stringa tipo ("ciao") da questo sito: http://www.testserverpsp.altervista.org/example.php e vorrei sapere se in C++ è possibile e soprattutto come funziona :asd:

Ringrazio in anticipo delle risposte che mi darete.

PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 17:46
Mercoledì, 14/10/2009
io per una cosa del genere una volta ho usato questa cosa, che, a livello di programmazione magari fa schifo, però funziona xD

in c++:
Codice sorgente - presumibilmente C/C++

  1. string url="http:/ /tuosito.it/pagina.php?messaggio=";
  2. // supponendo che tu abbia una stringa gia inizializzata che si chiama invia
  3. url=url+invia; // + nel caso delle stringhe serve a concatenarle quindi otterresti
  4.                // questo: http://tuosito.it/pagina.php?messaggio=ciao
  5.  
  6. // questo apre una finestra che va all'indirizzo nella variabile url
  7. ShellExecute(NULL, "open","iexplore.exe",url.c_str(), NULL, SW_SHOWNORMAL);




nella pagina in php:

Codice sorgente - presumibilmente Plain Text

  1. $_GET["messaggio"];
  2.  
  3. echo "$messaggio";




fammi sapere :)
ciao ciao

Ultima modifica effettuata da NickoMaiden il 14/10/2009 alle 17:47


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 18:53
Mercoledì, 14/10/2009
Ok questo è valido per inviare una stringa alla pagina php, e se invece volessi catturare la stringa ?

avevo pensato al download del file e alla sua lettura come file e alla successiva eliminazione con questo codice:

Codice sorgente - presumibilmente C/C++

  1. typedef int * (*URLDownloadToFileA)(void*,char*,char*,DWORD,void*);
  2.         HINSTANCE LibHnd = LoadLibrary("Urlmon.dll");
  3.         URLDownloadToFileA URLDownloadToFile =  (URLDownloadToFileA) GetProcAddress(LibHnd,"URLDownloadToFileA");
  4.         URLDownloadToFile(NULL,  "http://www.testserverpsp.altervista.org/example.php", "file", NULL, NULL);



cosa ne pensate?

PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 21:21
Mercoledì, 14/10/2009
potrebbe andare anche se credo sia inutile il download del file...
non saprei aiutarti con le socket perchè non le ho mai studiate, però se ti può servire ti dico come ho risolto sempre in quel programma che avevo adattato quella soluzione:
praticamente mettevo come titolo della pagina la variabile da passare al programma, poi prendevo il nome della finestra legata al processo iexplore.exe, rimuovevo le scritte microsoft internet explorer ecc ed avevo la mia bella stringa

il problema sorgeva nel momento in cui c'erano più finestre di internet explorer aperte, quindi vedi se qualcuno riesce a darti una soluzione migliore e soprattutto buona a livello di programmazione però in ogni caso sarei per sconsigliare il download

Ultima modifica effettuata da NickoMaiden il 14/10/2009 alle 21:22


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 22:08
Mercoledì, 14/10/2009
Testo quotato

Postato originariamente da NickoMaiden:

potrebbe andare anche se credo sia inutile il download del file...
non saprei aiutarti con le socket perchè non le ho mai studiate, però se ti può servire ti dico come ho risolto sempre in quel programma che avevo adattato quella soluzione:
praticamente mettevo come titolo della pagina la variabile da passare al programma, poi prendevo il nome della finestra legata al processo iexplore.exe, rimuovevo le scritte microsoft internet explorer ecc ed avevo la mia bella stringa

il problema sorgeva nel momento in cui c'erano più finestre di internet explorer aperte, quindi vedi se qualcuno riesce a darti una soluzione migliore e soprattutto buona a livello di programmazione però in ogni caso sarei per sconsigliare il download



ommioddio cosa sto leggendo...



Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 22:18
Mercoledì, 14/10/2009
Testo quotato

Postato originariamente da HeDo:
ommioddio cosa sto leggendo...




ma scusa, non voglio mettermi a fare flame, però se vedi bene io ho premesso di non conoscere le socket, ma siccome mi ero imbattuto in un problema del genere e l'unica cosa che mi importava era che funzionasse ho operato cosi e funzionava. che è una cosa oscena a livello di programmazione lo so infatti l'ho detto, ma ALMENO provo ad aiutare chi ha aperto il topic e non mi limito a lasciare commenti con aria di superiorità senza provare a risolvere il problema. Dove non so nemmeno mettere mezzo dito mi sto zitto

Ultima modifica effettuata da NickoMaiden il 14/10/2009 alle 23:48


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 10:06
Giovedì, 15/10/2009
Testo quotato

Postato originariamente da NickoMaiden:
Dove non so nemmeno mettere mezzo dito mi sto zitto



ma quindi perchè stai postando?

x oretovalley: http://msdn.microsoft.com/en-us/library/aa384273%28VS.85%2 ...



Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 18:16
Giovedì, 15/10/2009
Testo quotato

Postato originariamente da HeDo:

Testo quotato

Postato originariamente da NickoMaiden:
Dove non so nemmeno mettere mezzo dito mi sto zitto



ma quindi perchè stai postando?

x oretovalley: http://msdn.microsoft.com/en-us/library/aa384273%28VS.85%2 ...




semplicemente perchè una volta avendo questo problema ho risolto in quel modo, mi sbastava soltanto che il tutto funzionasse ( e appunto funzionava )


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:19
Giovedì, 15/10/2009
Testo quotato

Postato originariamente da NickoMaiden:

semplicemente perchè una volta avendo questo problema ho risolto in quel modo, mi sbastava soltanto che il tutto funzionasse ( e appunto funzionava )



si ma lo hai ammesso anche te che è una soluzione pessima, inguardabile e poco affidabile. Che senso ha proporre una cosa del genere ad uno che sta imparando? Ha molto più senso didattico indicargli la via da seguire piuttosto che postare dei mostri di codice.

ricordati che il "basta che funzioni" e il "viva il masochismo" vanno di pari passo.


Ingegnere Informatico
https://ldlagency.it
PM Quote