TCP/IP unter Windows und Linux



  • Hallo,

    ich beschäftige mich erst relativ kurz mit C++ und bin nun seit einigen
    Tagen auf der Suche nach einer Möglichkeit, ein Programm zu schreiben,
    das TCP/IP verwendet (für IRC Bot) und auf Linux und Windows kompilierbar
    ist. IN Win würde ich MinGW verwenden, aber ich finde keine vernünftigen
    Anleitungen, wie ich Sockets so hinbekomme dass das auf beiden Systemen
    läuft. Ich habe mir mal den Quelltext von OpenTTD angesehen,
    das Spiel compiliert ja fast auf alles und jedem, aber das Teil is mir doch
    irgendwie ne Nummer zu umfangreich, außerdem wird das da ja nicht grad
    überdeutlich dokumentiert 😉
    Wär für Hinweise auf Tuts oder ähnliches echt dankbar, scheint auf dem Sektor
    nichts zu geben, oder ich suche einfach nach den falschen Stichwörtern 😕

    Gruß, der Seppelmann



  • Such nach Sockets. Die funktionieren unter Windows und Linux annähernd gleich



  • Sockets funktionieren unter Windows un Linux praktisch gleich. Mit ein wenig bedingter Compilierung lässt sich einfach für beide Systeme entwickeln.

    #ifdef _WIN32
        #include <windows.h>
        #include <stdlib.h>
        #define in_addr_t unsigned long
        #define BADSOCK INVALID_SOCKET
        #define SD_SEND         0x01
    #else
        #include <sys/socket.h>
        #include <netinet/in.h>
        #include <arpa/inet.h>
        #include <netdb.h>
        #define INVALID_SOCKET -1
        #define BADSOCK -1
        #define SOCKET int
    #endif
    
    int main( int argc, char*argv[] ) {
    
        [...]
    
        #ifdef _WIN32
            //init windows sockets 
            WSADATA wsadata; 
            if( WSAStartup(2, &wsadata) != 0) {
                cerr<<"WSAStartup FAILED"<<endl;
            }
        #endif
    
        [Programm mit Sockets]
    
    }
    

    Schau dir auch mal http://tangentsoft.net/wskfaq/ an.


Log in to reply