Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Mentre Ubisoft vorrebbe chiedere agli utenti, all'occorrenza, di distruggere perfino le copie fisiche dei propri giochi, il movimento Stop Killing Games si sta battendo per preservare quella che l'Unione Europea ha già riconosciuto come una forma d'arte. Abbiamo avuto modo di parlare con Daniel Ondruska, portavoce dell'Iniziativa Europa volta a preservare la conservazione dei videogiochi
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Abbiamo provato il nuovo Galaxy S25 Edge, uno smartphone unico per il suo spessore di soli 5,8 mm e un peso super piuma. Parliamo di un device che ha pro e contro, ma sicuramente si differenzia dalla massa per la sua portabilità, ma non senza qualche compromesso. Ecco la nostra prova completa.
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-02-2006, 08:49   #1
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
[C/C++] Guida socket

Avrei in progetto un programma che comunica tramite un'altro attraverso le socket, avete dei buoni tutorial (o guide) da propormi?
Premetto che sulle socket non conosco ancora nulla
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2006, 10:45   #2
cj++
Member
 
L'Avatar di cj++
 
Iscritto dal: Sep 2005
Città: Barcelona
Messaggi: 200
ma lavori su unix o win?
__________________
Code without tests is broken by design.
cj++ è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2006, 10:54   #3
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da cj++
ma lavori su unix o win?
Win
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2006, 12:08   #4
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8878
allora per windows esiste msdn http://msdn.microsoft.com/library/de...k/socket_2.asp

Non esiste nulla di + completo rispetto a msdn

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2006, 19:15   #5
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da Fenomeno85
allora per windows esiste msdn http://msdn.microsoft.com/library/de...k/socket_2.asp

Non esiste nulla di + completo rispetto a msdn

~§~ Sempre E Solo Lei ~§~
Per Win sicuramente, però nel caso dei socket mi pare opportuno prima uno studio sul meccanismo di comunicazione client-server (o p2p ma meglio lasciare p2p per dopo)
17Qwerty71, a teoria dei socket come stai messo?
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2006, 19:17   #6
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Mi quoto da solo...

Quote:
Originariamente inviato da -fidel-
17Qwerty71, a teoria dei socket come stai messo?
ho appena riletto il tuo primo messaggio. Vedo di cercarti qualche tutorial sul meccanismo dei socket sul web (altrimenti ti passo il materiale che ho ereditato dai corsi dell'università, ma meglio di no )
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2006, 19:31   #7
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da -fidel-
Mi quoto da solo...



ho appena riletto il tuo primo messaggio. Vedo di cercarti qualche tutorial sul meccanismo dei socket sul web (altrimenti ti passo il materiale che ho ereditato dai corsi dell'università, ma meglio di no )
Grazie, mi farebbe piacere dare uno sguardo alla teoria di comunicazione tra due dispositivi
Il programmino in questione comunica con un'altro tramite la rete lan, non so' se può tornare utile come informazione
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2006, 17:21   #8
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Uff sono di nuovo scomparsi i messaggi scritti in mattinata!!
Ti avevo messo due link, ora li devo cercare di nuovo...
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2006, 19:50   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da 17Qwerty71
Grazie, mi farebbe piacere dare uno sguardo alla teoria di comunicazione tra due dispositivi
Il programmino in questione comunica con un'altro tramite la rete lan, non so' se può tornare utile come informazione
ah be', se lavori su una rete LAN allora puoi usare le named pipes oppure le mailslot che sono secondo me più semplici dei sockets; se invece pensi che in futuro dovrai far comunicare i tuoi programmi anche attraverso Internet allora è meglio che usi i sockets e che al momento opportuno ti studi le estensioni aggiunte da Microsoft nei Windows Sockets 2 per lavorare con protolli diversi.

EDIT: io una volta ho realizzato un programma per chattare su reti LAN che usava le mailslot; se vuoi ti passo i sorgenti (è fatto in Visual C++ 6 con MFC).
comunque ricordo che su alcune reti il programma aveva un problema che ritengo fosse dovuto a qualche malfunzionamento delle mailslots contro i quali ti devo avvisare: a volte (non so quando e non so perché) le mailslot riceventi ricevono gli stessi messaggi due o tre volte, sono abbastanza sicuro che non dipendesse dal mio programma (ho controllato molto approfonditamente con l'aiuto del debugger); mi era venuto in mente di risolvere la questione usando dei transaction IDs nei miei messaggi (il programma ricevente doveva ignorare messaggi con TrID uguale a quello di un messaggio precedente), ma alla fine non l'ho più fatto per pigrizia
attualmente il mio programma funziona alla perfezione tranne che su alcune reti i messaggi di chat arrivano 2 o raramente 3 volte

Ultima modifica di 71104 : 19-02-2006 alle 19:54.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2006, 20:56   #10
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da -fidel-
Uff sono di nuovo scomparsi i messaggi scritti in mattinata!!
Ti avevo messo due link, ora li devo cercare di nuovo...
Mi farebbe piacere perchè mi sono scordato di salvare il link nei segnalibri

Quote:
Originariamente inviato da 71104
ah be', se lavori su una rete LAN allora puoi usare le named pipes oppure le mailslot che sono secondo me più semplici dei sockets; se invece pensi che in futuro dovrai far comunicare i tuoi programmi anche attraverso Internet allora è meglio che usi i sockets e che al momento opportuno ti studi le estensioni aggiunte da Microsoft nei Windows Sockets 2 per lavorare con protolli diversi.

EDIT: io una volta ho realizzato un programma per chattare su reti LAN che usava le mailslot; se vuoi ti passo i sorgenti (è fatto in Visual C++ 6 con MFC).
comunque ricordo che su alcune reti il programma aveva un problema che ritengo fosse dovuto a qualche malfunzionamento delle mailslots contro i quali ti devo avvisare: a volte (non so quando e non so perché) le mailslot riceventi ricevono gli stessi messaggi due o tre volte, sono abbastanza sicuro che non dipendesse dal mio programma (ho controllato molto approfonditamente con l'aiuto del debugger); mi era venuto in mente di risolvere la questione usando dei transaction IDs nei miei messaggi (il programma ricevente doveva ignorare messaggi con TrID uguale a quello di un messaggio precedente), ma alla fine non l'ho più fatto per pigrizia
attualmente il mio programma funziona alla perfezione tranne che su alcune reti i messaggi di chat arrivano 2 o raramente 3 volte
Penso di rimanere con le WinSocks, perchè in un futuro penso di farlo comunicare attraverso internet
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2006, 09:16   #11
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Ho ritrovato i link nella cronologia per fortuna...

A questo indirizzo puoi trovare una breve ma efficace guida sulla programmazione con winsock (si riferisce alla 1.1 ma per cominciare va benissimo, nulla di diverso dalla 2.0), presenta degli esempi di codice carini e commentati, ed è in italiano. La guida non si sofferma su problematiche pù avanzate come socket bloccanti/non bloccanti, broadcast/multicast ecc., ma appunto va bene per cominciare e fare subito qualche programma interessante. La guida è in italiano.

A quest'altro indirizzo trovi invece una guida un po' più approfondita della precedente, ma in inglese. Ah, ho letto velocemente la prima metà e ti consiglio di saltare la parte sulla configurazione del compilatore, è inutile se usi un compilatore Microsoft (VisualStudio - è tutto già configurato) ma anche in altri IDE (tipo Borland) di solito è già tutto a posto.

Un'ultima cosa: nella prima guida, ho dato un'occhiata al programma di esempio "bannerscan.c" in cui prova ad usare un socket non bloccante. Puoi leggerlo se vuoi, ma non prenderlo ad esempio Il modello non bloccante è più complesso di quello brevemente presentato in quell'esempio: lì praticamente, invece di aspettare la risposta del server per un tempo illimitato (modello bloccante) attende la risposta per un tempo prefissato, e se non c'è risposta passa al server successivo (!!). Questo è un comportamento assolutamente da evitare, perchè poco efficiente e porta quasi sempre a perdita di informazioni in una rete non LAN (ma anche in LAN molot "cariche"). Il modello non bloccante è invece "asincorno", e permette di ricontattare il server che in un primo momento non aveva risposto quando lo stesso server comunica che vuole mandare i dati richiesti. Per il resto tutto ok (ma del resto per cominciare il modello non bloccante lascialo perdere).

Ciao
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2006, 09:36   #12
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da 71104
ah be', se lavori su una rete LAN allora puoi usare le named pipes oppure le mailslot che sono secondo me più semplici dei sockets; --cut--
Il meccanismo mailslot è molto semplice ed efficace se si lavora in rete locale (se non erro infatti non è possibile usare il meccanismo mailslot tra pc che risiedono in ip-range differenti), offre il meccanismo broadcast in modo trasparente, ma presenta una grande pecca.
Per comunicare, il meccanismo mailslot utilizza messaggi datagram (UDP) che non garantiscono alcun controllo sull'effettiva ricezione del messaggio. Se da un lato sono asincroni, e quindi evitano al programmatore i vari controlli sull'invio dei messaggi, dall'altro non puoi sapere se il messaggio inviato è stato effettivamente ricevuto oppure no. Quando si lavora con una mole di dati più consistente, diventa davvero inopportuno rischiare che il dato non arrivi a destinazione. Un'altra pecca è che i mailslot non sono portabili (sono supportati solo da sistemi Windows) a differenza dei sockets.
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2006, 10:58   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da -fidel-
Il meccanismo mailslot è molto semplice ed efficace se si lavora in rete locale (se non erro infatti non è possibile usare il meccanismo mailslot tra pc che risiedono in ip-range differenti), offre il meccanismo broadcast in modo trasparente, ma presenta una grande pecca.
Per comunicare, il meccanismo mailslot utilizza messaggi datagram (UDP) che non garantiscono alcun controllo sull'effettiva ricezione del messaggio. Se da un lato sono asincroni, e quindi evitano al programmatore i vari controlli sull'invio dei messaggi, dall'altro non puoi sapere se il messaggio inviato è stato effettivamente ricevuto oppure no. Quando si lavora con una mole di dati più consistente, diventa davvero inopportuno rischiare che il dato non arrivi a destinazione. Un'altra pecca è che i mailslot non sono portabili (sono supportati solo da sistemi Windows) a differenza dei sockets.
be', anche per quelli c'è qualche differenza, bisogna stare attenti ai valori di ritorno, perciò alla fine qualche #ifdef a sporcare il codice ci va lo stesso.
per quanto riguarda le mailslot è vero che sono basate su un protocollo inaffidabile ma non concordo con il discorso sul lavorare con una grande mole di dati. una volta che il programmatore è "aware" del fatto che il protocollo sottostante è inaffidabile, il meccanismo di per se' rimane comunque più semplice da gestire rispetto a qualsiasi altro meccanismo sincrono: il fatto che io debba inviare dati da molti punti del codice non significa che per ciascuno di quei punti io debba fare altrettanti controlli circa l'arrivo o meno del messaggio; il controllo lo faccio una volta sola per tutte in una funzione apposita, e solo se serve perché in realtà considerando che il programmatore è cosciente di basarsi su un protocollo inaffidabile, progetterà la sua architettura di conseguenza, cioè senza mai fare in modo che tra una ricezione e l'altra i dati assumano uno stato incosistente. ovviamente il programmatore deve sempre valutare se nel suo caso sia realmente opportuno basarsi su un protocollo inaffidabile.
e poi via, se la rete è in buone condizioni fisiche quante volte le mailslot falliranno? anzi, a me pare che spesso funzionino bene il doppio o il triplo di come dovrebbero...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2006, 12:31   #14
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da 71104
per quanto riguarda le mailslot è vero che sono basate su un protocollo inaffidabile ma non concordo con il discorso sul lavorare con una grande mole di dati. una volta che il programmatore è "aware" del fatto che il protocollo sottostante è inaffidabile, il meccanismo di per se' rimane comunque più semplice da gestire rispetto a qualsiasi altro meccanismo sincrono: il fatto che io debba inviare dati da molti punti del codice non significa che per ciascuno di quei punti io debba fare altrettanti controlli circa l'arrivo o meno del messaggio; il controllo lo faccio una volta sola per tutte in una funzione apposita, e solo se serve perché in realtà considerando che il programmatore è cosciente di basarsi su un protocollo inaffidabile, progetterà la sua architettura di conseguenza, cioè senza mai fare in modo che tra una ricezione e l'altra i dati assumano uno stato incosistente. ovviamente il programmatore deve sempre valutare se nel suo caso sia realmente opportuno basarsi su un protocollo inaffidabile.
e poi via, se la rete è in buone condizioni fisiche quante volte le mailslot falliranno? anzi, a me pare che spesso funzionino bene il doppio o il triplo di come dovrebbero...
Sicuramente usare i mailslots è molto più semplice che usare i socket, per quanto le sue potenzialità siano limitate.
Comunque non ho capito una cosa del tuo ragionamento. Giacchè i mailslots usano un protocollo di trasporto inaffidabile, si pone il seguente problema:

1) un mailslot client invia un messaggio ad un mailslot server (magari in broadcast)
2) i mailslot server, controllando la coda messaggi, NON possono sapere se qualche messaggio è stato inviato (se trovano la coda vuota).

Tu mi dici che il programmatore, sapendo questo, organizza l'architettura di invio/ricezione in modo più intelligente. Ok, mi viene in mente ad esempio di fare una sorta di handshaking tra mailslot client e server per minimizzare il rischio di perdita messaggi. In questo caso però il numero di messaggi da scambiare tra client e server per singola transazione aumenta, peggiorando le prestazioni.

Il discorso nasce dal fatto che dici

"il fatto che io debba inviare dati da molti punti del codice non significa che per ciascuno di quei punti io debba fare altrettanti controlli circa l'arrivo o meno del messaggio; il controllo lo faccio una volta sola per tutte in una funzione apposita"

Come fai a controllare se il messaggio è arrivato? Devi implementare comunque un'architettura più sicura credo (tipo handshake).

EDIT: dimenticavo, i socket non sono necessariamente sincroni ok quelli asincroni sono più diffci da implementare, ma offrono grandi potenzialità e prestazioni. Questo a prescindere dai mailslot: mi sembra giusto, se devo implementare un semplice programma di IPC in LAN, usare un meccanismo più semplice dei socket: inutile sparare al passerotto col bazooka
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson

Ultima modifica di -fidel- : 20-02-2006 alle 12:35.
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2006, 21:52   #15
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Codice PHP:
WSADATA data// inizializzo la variabile che contiene le primitive di Winsock
          
WORD Version;
          
int err=0// inizializzo una variabile per gestire gli errori
          
Version=MAKEWORD(2,0); // creo la variabile p che contiene la versione della wsock32.dll
          
err=WSAStartup(Version,&data); // inizializzo la wsock32.dll verificandone la mancanza di errori
          
SOCKET sock=socket(PF_INET,SOCK_STREAM,0);
          
sockaddr_in sock_addr;
          
sock_addr.sin_family=PF_INET// indico il protocollo utilizzato (TCP/IP)
          
sock_addr.sin_port=htons(21); //indico la porta a cui connettere il socket
          
sock_addr.sin_addr.S_un.S_un_b.s_b1=127// indico l'indirizzo IP
          
sock_addr.sin_addr.S_un.S_un_b.s_b2=0;
          
sock_addr.sin_addr.S_un.S_un_b.s_b3=0;
          
sock_addr.sin_addr.S_un.S_un_b.s_b4=1;
          
err=connect(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr));
          
closesocket(sock);
          
WSACleanup(); 
Il compilatore non mi riconosce la struttura sockaddr_in (ho include winsock.h)
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2006, 07:58   #16
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8878
Quote:
Originariamente inviato da 17Qwerty71
Codice PHP:
WSADATA data// inizializzo la variabile che contiene le primitive di Winsock
          
WORD Version;
          
int err=0// inizializzo una variabile per gestire gli errori
          
Version=MAKEWORD(2,0); // creo la variabile p che contiene la versione della wsock32.dll
          
err=WSAStartup(Version,&data); // inizializzo la wsock32.dll verificandone la mancanza di errori
          
SOCKET sock=socket(PF_INET,SOCK_STREAM,0);
          
sockaddr_in sock_addr;
          
sock_addr.sin_family=PF_INET// indico il protocollo utilizzato (TCP/IP)
          
sock_addr.sin_port=htons(21); //indico la porta a cui connettere il socket
          
sock_addr.sin_addr.S_un.S_un_b.s_b1=127// indico l'indirizzo IP
          
sock_addr.sin_addr.S_un.S_un_b.s_b2=0;
          
sock_addr.sin_addr.S_un.S_un_b.s_b3=0;
          
sock_addr.sin_addr.S_un.S_un_b.s_b4=1;
          
err=connect(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr));
          
closesocket(sock);
          
WSACleanup(); 
Il compilatore non mi riconosce la struttura sockaddr_in (ho include winsock.h)
devi linkare wsdata.lib o qualcosa del genere

comunque l'ip non si mette in quel modo

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2006, 08:22   #17
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
@ 17Qwerty71

Sì, devi indicare al compilatore che vuoi usare la libreria winsock2.dll.
Per farlo, ad esempio con visual studio, basta andare nelle opzione del progetto e, nella sezione (se non sbaglio) link (dai un'occhiata...), devi dire di includere lo stub 'winsock2.lib'. Lo stub .lib è uno speciale file include che informa il compilatore di linkare vs winsock2.dll
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2006, 09:32   #18
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
e io che ho letto la guida e non ho idea di che farci con sti socket?? sono stupido? cioe, vorrei fare qualcosa di semplice per vedere se ho capito, ma non so nemmeno da dove partire...mi fa piacere che mi venga spiegato come si programmano i socket, ma alla fine di quella guida minuscola e e sicuramente non esaustiva c e una perla: "ora che sappiamo programmare i socket, possiamo fare fakemailers, trojan, eccetera"...sono sempre piu convinto di non avere alcuna dote naturale per la programmazione, perche io dopo aver letto quella guida, ne so sui socket quanto ne sapevo prima, cioe nulla; non so perche funzionano, non so cosa sono, non so come utilizzarli...so solo a grandi linee cosa fanno e come si devono utilizzare...possibile che ci esistano cervelloni che dopo aver letto una guida simile, a digiuno completo di socket, possano scrivere un programma qualsiasi che compila ed esegue qualcosa? non so tipo far venire fuori un messaggio "ciao!" in un computer in lan o sul proprio schermo? bah, ho sbagliato universita, me ne convinco sempre di piu ormai
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga|
|ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2006, 09:38   #19
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da dnarod
e io che ho letto la guida e non ho idea di che farci con sti socket?? sono stupido? cioe, vorrei fare qualcosa di semplice per vedere se ho capito, ma non so nemmeno da dove partire...mi fa piacere che mi venga spiegato come si programmano i socket, ma alla fine di quella guida minuscola e e sicuramente non esaustiva c e una perla: "ora che sappiamo programmare i socket, possiamo fare fakemailers, trojan, eccetera"...sono sempre piu convinto di non avere alcuna dote naturale per la programmazione, perche io dopo aver letto quella guida, ne so sui socket quanto ne sapevo prima, cioe nulla; non so perche funzionano, non so cosa sono, non so come utilizzarli...so solo a grandi linee cosa fanno e come si devono utilizzare...possibile che ci esistano cervelloni che dopo aver letto una guida simile, a digiuno completo di socket, possano scrivere un programma qualsiasi che compila ed esegue qualcosa? non so tipo far venire fuori un messaggio "ciao!" in un computer in lan o sul proprio schermo? bah, ho sbagliato universita, me ne convinco sempre di piu ormai
Beh la prima guida che ho postato non è definibile come guida esaustiva... Magari la seconda è più completa (ma in inglese).
Cmq per programmare i socket ci vuole come prerequisito una sufficiente conoscenza della programmazione C.
Cos'è che non ti è chiaro?
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2006, 09:49   #20
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
mi sono espresso malissimo perche ero amareggiato...il mio problema non è tanto il non avere capito un h, che è risolvibile...il mio problema è che non ho in alcun modo l acume per articolare un ragionamento su quello che ho letto...non ho assolutamente idea di come produrre qualcosa che funzioni (anche qualcosa di basilare, come un esempio di stampa di "ciao"), mentre da quello che mi sembra di capire, dovrei eccome...la base in c ce l ho, altrimenti non avrei nemmeno guardato il 3d (certo in java me la cavo di piu, ma non mi spaventa guardare 2 righe di c)

ad esempio: i due stralci server.c e client.c che ci sono in quella guida...che fanno? ho provato a pastarli in codeblocks e ed eseguirli ma non succede nulla...la cosa piu deprimente è che parlo come un niubbo totale ("ho provato ad eseguirli ma non succede nulla", odioso...) quando non lo sono, o non dovrei esserlo giacche sono ormai 3 anni che me la sbuccio con la programmazione all uni...a volte ci provo a pensare di non essere inutile, ma non c e verso, non c e una sola cosa che padroneggi bene, non mi stupirei di sbagliare un algoritmo elementare sugli array a questo punto...
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga|
|ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck|
dnarod è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart Intervista a Stop Killing Games: distruggere vid...
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione Samsung Galaxy S25 Edge: il top di gamma ultraso...
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Pebble è di nuovo Pebble. Ecco il...
Accordo commerciale UE-USA: dazi al 15%,...
Amazfit GTR 3 a 69€, il Pro a 99€,T-Rex ...
Stazione tutto in uno e i pavimenti li a...
Torna il re dei mini PC con AMD Ryzen 5 ...
RTX 5000 Laptop: ASUS svela tutti i dett...
Coupon e promo Amazon su 3 super portati...
La Cina pronta a sfidare NVIDIA? Le GPU ...
Samsung, mega accordo da 16,5 miliardi p...
Le 18 offerte Amazon del weekend, senza ...
Galaxy S25 Ultra 512GB sotto i 1.000€ su...
Vi piace l'iPhone nero? Su Amazon sono s...
MacBook Air M4 16GB/256GB e 16GB/512GB s...
4 portatili per risparmiare tanto ed ess...
San Marino multa TikTok: non controllano...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:14.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v