PDA

View Full Version : [C o C++] Libreria per l'invio di dati online fra più computer?


stremix
06-07-2010, 15:06
Heilà :D Sono nuovo in quel che mi sembra un bellissimo forum! :)
è da un po' che cerco su google ma senza i risultati sperati, percui chiedo a voi esperti! ;)

Volevo creare su console un text based game online (un gioco basato unicamente su testo, con statistiche ecc...)! Quindi mi sevirebbe scambiare dati online fra più computer...
Ci sono librerie per facilitarmi il compito? Volevo usare il mio computer come server (provvisoriamente)...

Inoltre, con python un tempo, feci un programma che prendeva dei dati online da una semplice pagina web hostata su altervista! C'è un modo per fare la stessa cosa in C/C++?

Grazie mille! Attendo ansioso risposte! :help:

nalsk
06-07-2010, 21:45
Se utilizzi linux la risposta alla tua domanda è questa coppia di header:
sys/types.h
sys/socket.h

Se invece programmi su windows:
winsock.h

Questi header dovrebbero avere tutto ciò di cui hai bisogno.. :)
Buon lavoro, ciao ciao

Teo@Unix
06-07-2010, 22:40
C'è un modo per fare la stessa cosa in C/C++?
:help:

Yes!

fero86
06-07-2010, 23:18
Se utilizzi linux la risposta alla tua domanda è questa coppia di header:
sys/types.h
sys/socket.h

Se invece programmi su windows:
winsock.h

Questi header dovrebbero avere tutto ciò di cui hai bisogno.. :)
Buon lavoro, ciao ciao piu che gli headers gli serve la documentazione. qui c'é quella per Windows:
http://msdn.microsoft.com/en-us/library/ms740673(v=VS.85).aspx

su Linux é quasi tutto uguale.

nalsk
07-07-2010, 01:47
beh lui ha chiesto le librerie..ed io gliele ho date :fagiano:

stremix
08-07-2010, 14:33
Prima di tutto, grazie ai mod per avermi aggiunto il linguaggio applicativo fra parentesi quadre (già, nella fretta non avevo letto il regolamento :muro: )

Grazie mille a nalsk per l'header, e grazie a fero86 per la documentazione! Scusate se non l'ho specificato prima, ma lavoro su winzoz ù_ù
Comunque ora provo a vedere cosa riesco a fare con winsock e vi faccio sapere! :D

EDIT: Dato che sono abbastanza niubbo -.-" mi potreste spiegare come faccio ad includere Winsock in Dev-C++? e dove lo scarico l'header? :(

fero86
08-07-2010, 20:01
EDIT: Dato che sono abbastanza niubbo -.-" mi potreste spiegare come faccio ad includere Winsock in Dev-C++? e dove lo scarico l'header? :( tanto per cominciare, categoricamente, non usare Dev-C++, e fidati che lo dico solo per te.

dovresti avere giá a disposizione sia l'header sia la libreria statica necessaria; dovresti averceli sia che usi il compilatore MinGW (che é quello usato da Dev-C++) sia che usi l'SDK ufficiale di Windows, che é ció che fai se usi Microsoft Visual C++. l'header si chiama <winsock2.h> e si occupa giá di suo di includere anche <windows.h>, inoltre la libreria da linkare staticamente esiste in due versioni: quella in formato PE/COFF per il compilatore Microsoft si chiama ws2_32.lib, mentre quella in formato GNU usata dal MinGW non ricordo come si chiama ma dovrebbe avere la nomeclatura standard lib*.a

sicuramente la cosa migliore da fare per programmare su Windows é usare Visual C++, e quindi l'SDK ufficiale; il MinGW dovresti usarlo solamente se prevedi giá da ora di dover fare un porting del tuo programma per Linux, altrimenti ti fai solo del male (l'SDK non ufficiale fornito dal MinGW é incompleto).

assumendo che tu lavori con Visual C++, per poter utilizzare i Windows Sockets usa questo #include nel tuo codice:
#include <winsock2.h>

se poi il programma compila ma non linka probabilmente é perché l'IDE non ha linkato di default la libreria ws2_32.lib, quindi vai nelle opzioni del progetto, specificamente in quelle del linker, e aggiungi ws2_32.lib alla lista di librerie di input per il linker.

fero86
08-07-2010, 20:02
dimenticavo di scrivere che se sei del tutto deciso a usare il MinGW puoi usare l'IDE Code::Blocks: http://www.codeblocks.org/
che non é un granché rispetto a Visual C++ ma é di certo meglio di Dev-C++.

tomminno
08-07-2010, 22:56
Oppure puoi semplificarti la vita ed usare Qt

stremix
10-07-2010, 17:05
Ok! Grazie mille per le dritte! Vorrà dire che passerò a Microsoft Visual Studio :D
Molto gentili per l'aiuto! Buona serata!! :)