problem mit source code, compiler zeigt paar fehler an



  • Ich weiss leider nicht ob dies das richtige Forum dafür ist, ich hoffe es ist das richtige 😕

    Ich hab nen problem mit nem source code.
    Der Source Code ist von nem Typen der das gleiche spiel spielt wie ich. er hat sich nen login und world server programmiert um bisschen was zu erkunden.

    leider hat er nur den source code ansich bereit gestellt, aber keinerlei infos wie man ihn compiliert oder welche sprache es ist.

    ich bin atm noch ziemlich noobig wenns um C geht. programmier zwar gerne in java aber selbst da kenn ich nur die meisten grund begriffe, oder programmier ne benutzerdatenbank auf txt basierend 😕

    ich habe versucht den source mit Microsoft Visual C++ 6.0 zu compilieren, aber da zeigt er mir 11 fehler an. leider hab ich atm keinen blassen was der meint^^

    da ich diese software auch gerne nutzen würde wollte ich hier fragen ob es jemanden gibt der mir den source compilieren könnte und mir schicken oder hier nen post mit download links machen. (meine e-mail adresse ist tepoo@gmx.de)

    wie gesagt weiss ich leider auch nicht welche C sprache das ist. denke mal C++, kann aber auch C# sein 😕

    Das ist der Login Server

    #include <cstdio>
    #include <iostream>
    #include <winsock.h>
    
    void dump(const unsigned char* buf, int len)
    {
        int i = 0;
    
        for(i; i < len; ++i)
        {
            printf("%02X ", buf[i]);   
    
            if((i+1)%16 == 0)
            {
                printf("\n");   
            }
        }   
    
        if((i+1)%16 != 0)
        {
            printf("\n");   
        }
    
        printf("\n");    
    }
    
    int main(int argc, char* argv[])
    {
    	// primero inicializamos la libreria
    	WSAData wsaData;
    	WSAStartup( MAKEWORD(1, 0), &wsaData );
    
    	// creamos el socket
    	SOCKET m_socket = socket( PF_INET, SOCK_STREAM, 0 );
    
    	if( m_socket == -1 )
    	{
            perror("socket()");
    	}
    
    	// llenamos la informacion
    	sockaddr_in addr;
    
    	addr.sin_family = AF_INET;
    	addr.sin_port   = htons( 6000 );
    	addr.sin_addr.s_addr = INADDR_ANY;
    	memset( &(addr.sin_zero), 0x00, 8 );
    
    	// lo atamos al puerto
    	if( bind( m_socket, (sockaddr*)&addr, sizeof(sockaddr) ) == -1 )
    	{
    		perror("bind()");
    	}
    
    	// lo hacemos que escuche
    	if( listen( m_socket, 10 ) == -1 )
    	{
    		perror("listen()");
    	}
    
    	int         size;
    	sockaddr_in caddr;
    
        int len = 0;
        unsigned char buf[10000];
    
    	size = sizeof( sockaddr_in );
    
    	SOCKET client = accept( m_socket, (sockaddr*)&caddr, &size );
    
        printf("\n\n== SMSG 4 ==\n\n");    
    
        send(client, "\x04\x00\x01\x01", 4, 0);
    
        len = recv(client, (char*)buf, sizeof(buf), 0);
    
        printf("\n\n== CMSG 4 ==\n\n");
    
        dump(buf, len);
    
        printf("\n\n== SMSG 5 ==\n\n");
    
        send(client, "\x29\x00\x01\x02\x01\x01\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 41, 0);      
    
        len = recv(client, (char*)buf, sizeof(buf), 0);
    
        printf("\n\n== CMSG 5 ==\n\n");
    
        dump(buf, len);
    
        printf("\n\n== SMSG 6 ==\n\n");
    
        send(client, "\x29\x00\x01\x03\x01\x01\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 41, 0);      
    
        len = recv(client, (char*)buf, sizeof(buf), 0);
    
        printf("\n\n== CMSG 6 ==\n\n");
    
        dump(buf, len);    
    
        printf("\n\n== SMSG 7 ==\n\n");
    
        send(client, "\x29\x00\x01\x04\x01\x00\x00\x7F\x71\x17\x00\x00\x41\x00\x41\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 41, 0);      
    
        len = recv(client, (char*)buf, sizeof(buf), 0);
    
        printf("\n\n== CMSG 7 ==\n\n");
    
        dump(buf, len);    
    
    	while(1)
    	{
    
    	}
    
    	// winsock necesita esto
    	WSACleanup();
    }
    

    Das ist der World Server

    #include <cstdio>
    #include <iostream>
    #include <winsock.h>
    
    void dump(const unsigned char* buf, int len)
    {
        int i = 0;
    
        for(i; i < len; ++i)
        {
            printf("%02X ", buf[i]);   
    
            if((i+1)%16 == 0)
            {
                printf("\n");   
            }
        }   
    
        if((i+1)%16 != 0)
        {
            printf("\n");   
        }
    
        printf("\n");    
    }
    
    int main(int argc, char* argv[])
    {
    	// primero inicializamos la libreria
    	WSAData wsaData;
    	WSAStartup( MAKEWORD(1, 0), &wsaData );
    
    	// creamos el socket
    	SOCKET m_socket = socket( PF_INET, SOCK_STREAM, 0 );
    
    	if( m_socket == -1 )
    	{
            perror("socket()");
    	}
    
    	// llenamos la informacion
    	sockaddr_in addr;
    
    	addr.sin_family = AF_INET;
    	addr.sin_port   = htons( 6001 );
    	addr.sin_addr.s_addr = INADDR_ANY;
    	memset( &(addr.sin_zero), 0x00, 8 );
    
    	// lo atamos al puerto
    	if( bind( m_socket, (sockaddr*)&addr, sizeof(sockaddr) ) == -1 )
    	{
    		perror("bind()");
    	}
    
    	// lo hacemos que escuche
    	if( listen( m_socket, 10 ) == -1 )
    	{
    		perror("listen()");
    	}
    
    	int         size;
    	sockaddr_in caddr;
    
    	size = sizeof( sockaddr_in );
    
    	SOCKET client = accept( m_socket, (sockaddr*)&caddr, &size );
    
        printf("CLIENT CONNECTED\n");
    
        int len = 0;
        unsigned char buf[10000];
    
        printf("\n\n== SMSG 1 ==\n\n");
    
        send(client, "\x29\x00\x03\x01\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 41, 0);      
    
        len = recv(client, (char*)buf, sizeof(buf), 0);
    
        printf("\n\n== CMSG 4 ==\n\n");
    
        dump(buf, len);        
    
        printf("\n\n== SMSG 5 ==\n\n");    
    
        send(client, "\x29\x00\x03\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x10\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 41, 0);      
    
        len = recv(client, (char*)buf, sizeof(buf), 0);
    
        printf("\n\n== CMSG 5 ==\n\n");
    
        dump(buf, len);    
    
        printf("\n\n== SMSG 6 ==\n\n");    
    
        send(client, "\x29\x00\x03\x03\x00\x00\x00\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 41, 0);      
    
        len = recv(client, (char*)buf, sizeof(buf), 0);
    
        printf("\n\n== CMSG 7 ==\n\n");
    
        dump(buf, len);        
    
        printf("\n\n== SMSG 7 ==\n\n");    
    
        send(client, "\x39\x00\x03\x04\x00\x00\x00\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01", 57, 0);      
    
        len = recv(client, (char*)buf, sizeof(buf), 0);
    
        printf("\n\n== CMSG 7 ==\n\n");
    
        dump(buf, len);        
    
    	while(1)
    	{
    
    	}
    
    	// winsock necesita esto
    	WSACleanup();
    }
    

    Ich hoffe jemand von euch kann mir dabei helfen.

    MfG
    Marco



  • Das ist C.
    Und wie sehen die Fehlermeldungen aus?

    Tipp: Die Header richtig einbinden, wie bei winsock**.h**.



  • ... schrieb:

    Tipp: Die Header richtig einbinden, wie bei winsock**.h**.

    Die Header sind doch richtig (für C++). Nur stehst du da vor dem Problem, daß alle Funktionen im Namensraum "std::" liegen (setz mal ein 'using namespace std;' unter die Includes und schau mal nach, wleche Fehler noch übrigbleiben).


Anmelden zum Antworten