Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
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: 308
[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: 308
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: 308
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: 7027
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: 308
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: 7027
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: 308
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


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...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
Da Microsoft due nuovi Surface Laptop 5G...
Processore NVIDIA N1X slittato al 2026: ...
Tesla, nel secondo semestre più a...
One UI 8 Watch arriva su Galaxy Watch Ul...
Moon Studios scarica Xbox: No Rest for t...
L'idea di JPMorgan: prestiti e finanziam...
Candy Crush: non solo il gioco! Arriva a...
Ecco come siamo riusciti a raccogliere l...
Agentic AI Framework: l'IA basata su age...
Offerte Amazon pazze di luglio: portatil...
Scoppierà la bolla AI? Gli econom...
Il potere dei coupon e delle offerte Ama...
Tesla fotovoltaica, funziona davvero? Un...
Ribassi clamorosi sui robot Narwal: scon...
Dopo OpenAI anche Gemini Deep Think conq...
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: 00:07.


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