Probleme mit Winsock 2.0



  • Hallo

    ich habe mich mal ein bischen mit netzwerk programierung befasst.

    ich schaffe es in winsock eine Socket Varabele zu initialisieren aber wie fülle ich sie mit Daten (ip, Port) und wie mach ich dann den Conect und die Übertragung hab mir das tutorial von C workers angeguckt aber steig da nicht durch da ich nicht weis wo und wie ich port und ip einlese (es soll ein clien socket werden)

    #include <iostream>
    #include <winsock2.h>
    #include <stdio.h>
    #include <string.h>
    using namespace std;
    # include <windows.h>
    #pragma comment(lib,"winmm.lib") //Audio
    #pragma comment( lib, "ws2_32.lib" )//Netzwerk

    int startWinsock()
    {
    WSADATA wsa;
    return WSAStartup(MAKEWORD(2,0),&wsa);
    }// Methoden ende
    int winsocktest ()
    {
    long X;
    X=startWinsock();
    if(X!=0)
    {
    printf("Fehler: startWinsock, fehler code: %d\n",X);
    return 1;}
    else
    {printf("Winsock gestartet!\n");}
    return 0;
    }

    int main ()
    {
    winsocktest ();
    //(

    SOCKET s;
    s=socket(AF_INET,SOCK_STREAM,0);
    if(s==INVALID_SOCKET)
    {
    printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
    return 1;}
    else
    {printf("Socket erstellt!\n");}return 0;
    //) Socket initialisierung
    struct sockaddr_in
    {
    short sin_family;
    unsigned short sin_port;
    struct in_addr sin_addr;
    char sin_zero[8];
    };



  • Die IP-Adresse kriegst Du mit: Start->Ausführen->"cmd"->"ipconfig"(in Konsole).
    Den Port musst DU selbst festlegen. Normalerweise nimmt man 4000 - Du kannst aber auch 12345 nehmen, solange der Port frei ist.
    Wenn Du erst mal auf einem Rechner lokal testen willst, dann ist die IP "localhost".



  • Nein die Frage ist jetzt wie ich dem socket mitteile wass er beinhalten soll



  • Sockets sind Software-Schnittstellen. Die können nix "beinhalten"!

    Wenn Du damit die Nachricht meinst, die Du übermitteln willst:

    long rc;
    char buff[] = "hello world";
    
    rc=send(Socket,buff,sizeof(buff),0);
    

    Ausserdem bist Du hier im MFC-Forum: hier verwendet man normalerweise die Klassen CSocket bzw. CAsyncSocket.



  • Thanks!,


Anmelden zum Antworten