Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [c]problema socket

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    148

    [c]problema socket

    nn riesco a compilare il codice per realizzare un socket client come posso risolvere?:

    #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;
    }

    il compilatore mi da i seguenti errori:

    r
    Esecuzione di g++.exe...
    g++.exe "C:\Documents and Settings\user\Desktop\SenzaTitolo1.cpp" -o "C:\Documents and Settings\user\Desktop\SenzaTitolo1.exe" -I"C:\Dev-Cpp\include\c++" -I"C:\Dev-Cpp\include\c++\mingw32" -I"C:\Dev-Cpp\include\c++\backward" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
    C:\DOCUME~1\user\IMPOST~1\Temp/cc4acaaa.o(.text+0x48):SenzaTitolo1.cpp: undefined reference to `WSAStartup@8'
    C:\DOCUME~1\user\IMPOST~1\Temp/cc4acaaa.o(.text+0x59):SenzaTitolo1.cpp: undefined reference to `socket@12'
    C:\DOCUME~1\user\IMPOST~1\Temp/cc4acaaa.o(.text+0x6f):SenzaTitolo1.cpp: undefined reference to `htons@4'
    C:\DOCUME~1\user\IMPOST~1\Temp/cc4acaaa.o(.text+0x97):SenzaTitolo1.cpp: undefined reference to `connect@12'
    C:\DOCUME~1\user\IMPOST~1\Temp/cc4acaaa.o(.text+0xa5):SenzaTitolo1.cpp: undefined reference to `closesocket@4'
    C:\DOCUME~1\user\IMPOST~1\Temp/cc4acaaa.o(.text+0xad):SenzaTitolo1.cpp: undefined reference to `WSACleanup@0'

    Esecuzione terminata

  2. #2
    Devi dire al linker di collegare ai tuoi file oggetto anche Ws2.lib (o Ws2.a).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La libreria da indicare al linker e' la libws2_32.a
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    148
    Originariamente inviato da MItaly
    Devi dire al linker di collegare ai tuoi file oggetto anche Ws2.lib (o Ws2.a).
    cioè cosa devo aggiungere o modificare nel codice?
    p.s
    non sono molto esperto

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da killerbomb
    cioè cosa devo aggiungere o modificare nel codice?
    p.s
    non sono molto esperto
    Nel codice non devi modificare nulla ...

    Se utilizzi DevCpp (come si nota) devi aprire le Opzioni del Progetto, andare sulle opzioni del Linker ed aggiungere la libreria che ti ho indicato

    libws2_32.a

    che sta nella cartella lib
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    oppure un buon pragma comment
    "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

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da XWolverineX
    oppure un buon pragma comment
    Sicuro che funzioni con il compilatore in questione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    ya
    "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

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da XWolverineX
    ya
    Con la versione

    devcpp 4.9.9.2

    e

    gcc 3.4.2 (mingw special)

    si ha un errore ... quale versione usi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.