Socket Programmierung



  • Hi, ich möchte mit einem Programm Mails automatisch versenden. Dazu wollte ich nun eigentlich über Sockets gehen. Ich hab auch ein paar Tutorials und auch 2 oder 3 Beiträge hier im Forum dazu angeschaut, kriege das Ding aber irgendwie nicht gestartet. (PS: Wenn ich ganze projekte runterlade uns starte läuft es)

    include <windows.h>
    #include <iostream>
    #pragma comment (lib, "wsock32.lib") 
    
    using namespace std;
    
    int startWinsock(){
    	WSADATA wsa;
    	short wVersionRequested ; 
    	wVersionRequested = MAKEWORD (1, 0) ; 
    	return WSAStartup(wVersionRequested,&wsa);
    }
    
    void main(){
    
    	if(startWinsock())
    		cout <<"ok";
    }
    

    so sieht das bisher aus, ich bekomme aber immer 0 zurückgeliefert...also scheint das nicht zu klappen. Seh aber keinen Unterschied zu den anderen Codebeispielen (die Versionsnummer hab ich auch schon öfters abgeändert).
    Muss ich da noch irgendwas im Hintergrund einstellen oder so?

    Besten Dank schonmal

    PS: Gibt es für c++ neuer header als windows.h?



  • int startWinsock()
    {
    	WSADATA wsa;//Starten von winsock, gibt 0 zurück wenn erfolgreich 
    	return WSAStartup(MAKEWORD(2,0),&wsa);//MAKEWORD->Version des Windowssockets,&wsa->Zeiger auf wsa
    }
    

    reicht völlig

    includiere mal statt

    #pragma comment (lib, "wsock32.lib")
    

    die ws2_32.lib

    #pragma comment (lib, "ws2_32.lib")
    

    auch unter ->Projekt->Einstellungen->Linker
    ansonsten www.c-worker.ch

    Ach ja die

    #include <winsock.h>
    

    mußte auch includeiren



  • Ach shit, sehe es jetzt erst, winsock gibt 0 zurück wenn erfolgreich, also funktioniert dein code!!!



  • lol.. sorry... <bin davon ausgegangen das 0 = false = falsch ist.. trotzdem danke ;-)... aber eine neuere header für windows.h gibts nicht?

    gruß



  • Nein,sonst würde dir

    #include <windows>
    
    using namespace std;
    

    keinen Fehler bringen.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • bigborre schrieb:

    Nein,sonst würde dir

    #include <windows>
    
    using namespace std;
    

    keinen Fehler bringen.

    was hat der standard cpp namespace mit dem windows header zu tun 😕
    und imho gibt es keinen windows header ohne ".h"



  • richtig, die neuen header sind aber ohne .h
    siehe

    <iostream.h>
    <iostream>
    


  • bigborre schrieb:

    richtig, die neuen header sind aber ohne .h
    siehe

    <iostream.h>
    <iostream>
    

    das bezieht sich nur auf den standard, und der hat nix mit windows zu tun.


Anmelden zum Antworten