Wie UDP Verbindung mit der Klasse ASyncSocket und OnConnect



  • Hi,

    hab da mal zwei kleine Netzwerkfragen.
    Ich bekomme eine normale TCP/IP Verbindung zu einem Server hin.
    Ich habe eine Klasse MySocket von der Klasse ASyncSocket abgeleitet und initialsiert.

    m_MySocket.Create();
    m_MySocket.Connect("192.168.0.2",1500);
    m_MySocket.Send("hallo",6,0);

    so das klappt alles einwandfrei. Jetzt gibt es ja die Methdoe OnConnect. Ich vermute mal damit kann man prüfen, ob eine Verbindung hergestellt wurde, wenn ja wie geht es, hab einiges Probiert doch leider klappt es nicht.

    Dann hab ich noch ein zweites Problem. Es muss ja irgendwie auch möglich sein eine UDP Verbindung statt einer TCP Verbindung zu erstellen.
    habe provbiert:

    m_MySocket.Create(SOCK_DGRAM);
    m_MySocket.Sendto("hallo",6,"192.168.0.2",1500,0);

    probiert, leider bekomme ich beim kompilieren eine Fehlermeldung!

    D:\NEUER ORDNER\broadcast\broadcastDlg.cpp(180) : error C2664: 'int __thiscall CAsyncSocket::SendTo(const void *,int,unsigned int,const char *,int)' : Konvertierung des Parameters 3 von 'char [12]' in 'unsigned int' nicht moeglich
    Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

    wieso? oder hab ich da was ganz falsches probiert??
    hoffe ihr könnt mir helfen.



  • gibt es niemanden der sich damit auskennt oder ist es das falsche forum?



  • Die Fehlermeldung ist doch unmissverständlich. Du hast ja auch gleich in die Dokumentation von CAsyncSocket::SendTo geschaut. Ist dir da nichts aufgefallen?



  • was mir aufgefallen ist, das es irgendwie total schlecht beschrieben war die DATAGRAMM Geschichte(Sprich UDP Verbindungen)

    ja klar verstehe ich die Fehlermeldung, wie soll ich sonst die IP usw übergeben?

    hab es mit SOCKADDR_IN addr;
    versucht dann alle Objekte mit Daten gefüllte IP,PORT, usw

    und dann bei der SendTo Methode

    (SOCKADDR_IN)&addr genommen, leider war dies auch nicht möglich.



  • ok das Problem mit der SendTo Funktion hab ich gelöst, Problem war das er erst den Port haben wollte und dann die ip

    m_MySocket.SendTo("Hallo",6,1500,"192.168.0.2",0);

    damit geht es einwandfrei...

    Kann mir jemand noch die sache mit OnRecieve und OnConnect erklären?


Anmelden zum Antworten