Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841

    socket (sono alle prime armi :-) )

    ho trovato questo programma in un tutorial...
    ma quando provo a compilarlo con dev-c++ nn va... come mai???
    grazie ciao

    codice:
    //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; 
    }
    grazie ciao

  2. #2
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Hai linkato ws2_32.lib?

    edit: notavo una cosa...
    Il tutorial include winsock 1 e poi crea una versione 2

    #include <winsock.h>
    MAKEWORD(2,0);

    Cmq... se lavori con winsock.h linka wsock32.lib, se lavori con winsock2.h linka ws2_32.lib.
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  3. #3
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Originariamente inviato da infinitejustice
    Hai linkato ws2_32.lib?

    edit: notavo una cosa...
    Il tutorial include winsock 1 e poi crea una versione 2

    #include <winsock.h>
    MAKEWORD(2,0);

    Cmq... se lavori con winsock.h linka wsock32.lib, se lavori con winsock2.h linka ws2_32.lib.
    eheh grazie... approposito come linco ws2_32.lib???

  4. #4
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    In devc++ nn so... guarda se c'è qualche opzione nelle proprietà/config che ti permetta di gestire la fase di linking... se no da linea di comando
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  5. #5
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Originariamente inviato da infinitejustice
    se no da linea di comando
    cacchio è la linea di comando??

  6. #6
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    sotto windows... il prompt dei comandi di dos. se è tutto installato per bene dovresti riuscir a fare una cosa cosi

    c:\directory coi sorgenti > cl mioFile.cpp ws2_32.lib

    Però probabilmente se cerchi tra le opzioni di devcpp trovi il modo di inserire le librerie per la fase di linking
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  7. #7
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    1. Non c'è bisogno di includere winsock.h, ci pensa già windows.h, se non hai definito WIN32_LEAN_AND_MEAN
    2. Meglio utilizzare winsock2.h
    3.
    codice:
    //Compatibile con tutti i compilatori
    #pragma comment(lib,"nomelibreria.lib")
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  8. #8
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Originariamente inviato da XWolverineX
    #pragma comment(lib,"nomelibreria.lib")
    Bella sta storia
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    E' una vera chicca
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    grazie mille ora provo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.