Gambol (Normal User)
Newbie
Messaggi: 9
Iscritto: 07/05/2010
|
Salve a tutti,
in giro per la rete ho trovato i sorgenti di client e server scritti in c,avevo l'intenzione di andare a studiarli solo quando vado a compilare mi da un errore che non riesco a risolvere,sia col server che col client.
Il sorgente del client è:
Codice sorgente - presumibilmente C++ |
//Programma che si connette alla porta 21 del computer da cui viene eseguito #include <windows.h> #include <winsock.h> //includo le varie librerie tra cui quella winsock #include <stdio.h> int main() { SOCKET sock; // creo la socket chiamato sock che userò nella connessione struct sockaddr_in sock_addr; // inizializzo la socket WSADATA data; // inizializzo la variabile che contiene le primitive di Winsock WORD p; p=MAKEWORD(2,0); // creo la variabile p che contiene la versione della wsock32.dll WSAStartup(p,&data); // inizializzo la wsock32.dll verificandone la mancanza di errori sock=socket(PF_INET,SOCK_STREAM,0); // creo la socket indicandone le caratteristiche sock_addr.sin_family=PF_INET; // indico il protocollo utilizzato (TCP/IP) sock_addr.sin_port=htons(21); //indico la porta a cui connettere la 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; connect(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr)); // mi connetto all'indirizzo scelto closesocket(sock); // chiudo la socket WSACleanup(); //libero le risorse utilizzate dalla libreria Winsock return 0; }
|
l'errore che mi da è:
[Linker error] undefined reference to `__cpu_features_init'
se può essere di aiuto questo errore me lo dava anche con altre parti del sorgente,e girando per internet ho scoperto che bisognava aggiungere un comando al compilatore,che ha risolto i miei problemi,però non l'ultimo.
Come ide uso dev c++.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Cambia IDE/compilatore ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da nessuno:
Cambia IDE/compilatore ... |
|
|
Gambol (Normal User)
Newbie
Messaggi: 9
Iscritto: 07/05/2010
|
ok,raga ho scaricato visual c++,solo che ho provato a fare un semplice hello world per vedere come funzionava un po la baracca,quindi ho creato un nuovo proggetto,solo che nella dichiarazione delle librerie non mi riconosce la iostream quando compilo mi dice:
fatal error C1083: Impossibile aprire il file inclusione 'iostream.h': No such file or directory
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Prima di tutto iostream.h non è una libreria ma un file include.
In secondo luogo, quell'include in C++, secondo lo standard (a cui aderisce il VC++ perchè più recente rispetto al vecchissimo Dev), si indica senza .h, ovvero
#include <iostream>
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Gambol (Normal User)
Newbie
Messaggi: 9
Iscritto: 07/05/2010
|
ok adesso mi da questo errore:
error C2065: 'cout': identificatore non dichiarato
sorgente:
Codice sorgente - presumibilmente C++ |
#include "stdafx.h" #include <iostream> int _tmain(int argc, _TCHAR* argv[]) { cout<<"ciao"; return 0; }
|
ho lasciato il main come lo dichiara lui in modo da evitare errori.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Postato originariamente da Gambol:
ok adesso mi da questo errore:
error C2065: 'cout': identificatore non dichiarato |
Ti mancano le basi del C++ ... prima di iniziare a scrivere codice, dovresti studiare un po' di teoria da un libro, altrimenti non comprendi nè gli errori nè le soluzioni ...
Devi indicare il namespace standard, ovvero
Codice sorgente - presumibilmente C++ |
#include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { cout<<"ciao"; return 0; }
|
Ultima modifica effettuata da nessuno il 08/05/2010 alle 16:04
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Gambol (Normal User)
Newbie
Messaggi: 9
Iscritto: 07/05/2010
|
sisi,funziona poi l'ho letto pure nella guida della prima applicazione.
Hai un suggerimento su come farli riconoscere la winsock?
Ultima modifica effettuata da Gambol il 09/05/2010 alle 11:17 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Postato originariamente da Gambol:
... come farli riconoscere la winsock? |
Ma che vuol dire ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|