Gibt es Socket unteschiede zwischen "dialogbasiert" und "SDI"



  • Hallo,
    ich habe ein riesen Problem mit meiner Socket-Kommunikation.
    Ich habe eine Server-Client Anwendung geschrieben die über Sockets miteinander kommuniziert. Der Client ist "dialogbasierent" geschrieben. Die Socket-Dateien habe ich so das man Sie eigentlich in jedes beliebiges Programm einbinden kann.
    Das habe ich dann mal versucht und wollte einen neuen Client mit "SDI" schreiben. Hab dann meine Socket-Dateien eingebunden und habe Sie dann in mein Programm eingebaut. Unter meinen 1. Client (dialogbasierent) hatte ich keinen einzigen Fehler. Nun wo ich meinen 2. Client (SDI) habe, bekomme ich in den Socket-Dateien insgesamt 383 Fehler, die ich mir allesamt nicht erklären kann.

    Bsp:

    d:\programme\microsoft visual studio\vc98\include\winsock2.h(99) : error C2011: 'fd_set' : 'struct' Typneudefinition
            d:\programme\microsoft visual studio\vc98\include\winsock.h(49) : Siehe Deklaration von 'fd_set'
    d:\programme\microsoft visual studio\vc98\include\winsock2.h(134) : warning C4005: 'FD_SET' : Makro-Neudefinition
            d:\programme\microsoft visual studio\vc98\include\winsock.h(83) : Siehe vorherige Definition von 'FD_SET'
    d:\programme\microsoft visual studio\vc98\include\winsock2.h(143) : error C2011: 'timeval' : 'struct' Typneudefinition
            d:\programme\microsoft visual studio\vc98\include\winsock.h(92) : Siehe Deklaration von 'timeval'
    d:\programme\microsoft visual studio\vc98\include\winsock2.h(199) : error C2011: 'hostent' : 'struct' Typneudefinition
            d:\programme\microsoft visual studio\vc98\include\winsock.h(148) : Siehe Deklaration von 'hostent'
    d:\programme\microsoft visual studio\vc98\include\winsock2.h(212) : error C2011: 'netent' : 'struct' Typneudefinition
            d:\programme\microsoft visual studio\vc98\include\winsock.h(161) : Siehe Deklaration von 'netent'
    

    Kann mir jemand weiter helfen??



  • winsock2. muss vor windows.h eingebunden werden.



  • Du hast aus irgendeinem Grund die Dateien <winsock.h> und <winsock2.h> nebeneinander eingebunden - und dadurch hast du viele Definitionen doppelt.

    (also entscheide dich für eine Version)



  • Danke für Eure antworten ich habe das problem gefunden, kann es mir aber nicht erklären.
    Nachdem CStoll mir sagte das ich mich für eine lib entscheiden soll habe ich mir die winsocks mal angeguckt und festgestellt, dass ich eine winsock.h und eine WINSOCK2.h zu Verfügung habe.In meinem Code habe ich aber die winsock2.h eingebunden.
    Ist da ein unterschied zwischen WINSOCK2.h und winsock2.h bis auf das Sie unterschiedlich geschrieben werden?
    Ich habe jetzt die winsock.h genommen und die Fehler sind weg.


Anmelden zum Antworten