Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Verteilen von Dateien auf Benachbarte Computer

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
17.12.2002, 08:14 Uhr
Uli



Hallo,

ich arbeite in einem Netzwerk. Auf Wunsch soll eine oder mehrere Dateien auf einen Server und die in der Gruppe befindlichen Rechner verteilt werden. Der zugriff auf Lokal gelinkte Festplatten ist simpel. Aber auf Festplatten weiterer Rechner mir ein Rätsel. Es sind nicht immer die selber Rechner vorhanden, aber verteilt werden soll auf alle die da sind. Der Server ist im Normalfall immer da.
Wie kann ich prüfen welche Rechner im Netz sind und auf die Festplatten der Rechner zugreifen??

Bye Uli
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.12.2002, 15:26 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Zur ersten Frage:
www.codeproject.com/internet/ipaddress.asp

Ob man aber die Ordner der Freigabe mit WinSocks auch auslesen kann, weiß i leider net. Vielleicht wär ein FTP Server eine Zwischenlösung.

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.12.2002, 11:29 Uhr
Uli



Hallo Mike,

ich schaue mir die Seite mal an. Ich glaube aber nicht das sie mir groß weiterhelfen wird. Ich habe garkeine Ahnung mit Programieren für Netzwerke

Bye Uli
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.12.2002, 12:13 Uhr
~mike
Gast


Hi!
Das hilft vielleicht noch ein wenig
www.codeguru.com/mfc/comments/18071.shtml
http://codeguru.earthweb.com/files/CreatePath.html

Normalerweise müsste die CFile Klasse auch Netzwerkünterstützung haben.

mfg mike
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.12.2002, 15:43 Uhr
Uli



Hallo

erst ein mal danke fürs schreiben. Ich habe heute Tuttrial gesucht und eins angefangen zu bearbeiten. Ich will hier aber gerne mein Problem noch einmal genauer beschreiben.
Ich habe ein Dialogfenster in dem ein Listenfeld ist. Als einträge stehen Dateien. Jetzt sollen eine oder mehrere (auch alle möglich) einträge gewählt werden können. Ist soweit schon fertig. Wenn ich ein Button „Verteilen“ betätige soll ein Fenster aufgehen in dem mir wieder in einer Liste alle Computer im Benachbarten Netzwerk( gleiche Arbeitsgruppe) angezeigt werden. Dort wähle ich die Computer die meine Dateien Empfangen sollen. Nach der Auswahl und betätigen des Button OK soll die Datei auf die Computer verschickt werden. Der QuellPath und ZielPath ist dabei identisch, nur halt auf dem anderen Computer.

Nun geht das Problem schon beim aufbauen der Liste der Benachbarten Computer los. Ich habe einfach keine Ahnung. Ich weis nicht was es dort alles gibt und auch nicht was das günstigste ist. Genau so bei dem verschicken der Datei(en). Ich habe keine Ahnung. Ich schaue mir heute mal noch die Seiten die ihr mir geschrieben habt an ob mir das weiter helfen.
Wenn ihr jetzt mein Problem besser versteht und noch Ideen würde es mir SEHR SEHR SEHR helfen.

Bye Uli
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.12.2002, 11:25 Uhr
Uli



Hallo zusammen,

bin in meinem Problem etwas weiter. Ich habe ein Funktion die mir meine Benachbarten Computer zurück gibt geschrieben. Leider begrenzt diese sich noch auf 17 stück von über 200 aber daran arbeite ich noch. Ich schreibe hier mal den Code falls jemand eine Idee hat.

C++:
BOOL CComputerDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    
    Ini.ListeEinlesenProdukteIni();    
    
    m_Liste.InsertColumn(0,"Computer Name",LVCFMT_LEFT,150);
    m_Liste.InsertColumn(1,"Status",LVCFMT_LEFT,100);
    m_Liste.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_GRIDLINES );

    
    CString    strTemp;
    struct hostent *host;

    struct in_addr *ptr;

    DWORD dwScope = RESOURCE_CONTEXT;
    NETRESOURCE *NetResource = NULL;
    HANDLE hEnum;
    WNetOpenEnum( dwScope,NULL,NULL,NULL,&hEnum);
    WSADATA wsaData;
    WSAStartup(MAKEWORD(1,1),&wsaData);

    if(hEnum)
    {
        DWORD Count = 0xFFFFFFFF;
        DWORD BufferSize = 2048;
        LPVOID Buffer = new char[2048];
        WNetEnumResource( hEnum, &Count,Buffer, & BufferSize);
        NetResource= (NETRESOURCE*)Buffer;

        char szHostName[200];
        unsigned int i,j;
        j=BufferSize/sizeof(NETRESOURCE);
        CString Print;
        Print.Format("%d",j);
//        MessageBox(Print);
        for (i=0;i<j;i++,NetResource++)
        {
            if( NetResource->dwUsage == RESOURCEUSAGE_CONTAINER &&
                NetResource->dwType  == RESOURCETYPE_ANY)
            {
                if( NetResource->lpRemoteName )
                {
                    CString strFullName = NetResource->lpRemoteName;
                    if( 0==strFullName.Left(2).Compare("\\\\") )
                        strFullName = strFullName.Right(strFullName.GetLength()-2);
                    gethostname(szHostName, strlen( szHostName));
                    host= gethostbyname(strFullName);

                    if( host == NULL) continue;
                    ptr = (struct in_addr *)
                        host->h_addr_list[0];
    
                    int a = ptr->S_un.S_un_b.s_b1;
                    int b = ptr->S_un.S_un_b.s_b2;
                    int c = ptr->S_un.S_un_b.s_b3;
                    int d = ptr->S_un.S_un_b.s_b4;
                
                    strTemp.Format("%s --> %d.%d.%d.%d",strFullName,a,b,c,d);
                    if( Ini.FindInSection("Computer",strFullName) == TRUE)
                        m_listeComputer.AddTail(strFullName);
                        
                }
            }
        }
        delete Buffer;
        WNetCloseEnum( hEnum );
    }
    WSACleanup();

    NewString=Ini.GetInhaltSection("Computer","");
    do
    {
        if( NewString==Inf.GetNameOfComputer())
        {
            // NewString ist der eigene Computername
        }
        else
        {
            if( m_listeComputer.Find(NewString,NULL)!=NULL )
            {
                int i=m_Liste.InsertItem(0,NewString,NULL);
                m_Liste.SetItemText(i,1,"Aktiv");
            }
            else
            {
                int i=m_Liste.InsertItem(0,NewString,NULL);
                m_Liste.SetItemText(i,1,"Inaktiv");
            }
        }
        NewString=Ini.GetInhaltSection("Computer",NewString);
    }while(NewString!="");
    return TRUE;
}



Ich habe zu den Rechner auch die IP-Addr. Auf den Rechnern habe ich auch auf den freigegebenen Festplatte schreibrechte. Jetzt ist nur noch das Kopieren der Dateien unklar.

Habt ihr eine Idee??

Bye Uli
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.12.2002, 12:45 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Hab gerade folgendes probiert:

C++:
::CopyFile("U:\\35.jpg","K:\\35.jpg",FALSE);


Bei mir wurde die Datei von meinem Homeverzeichnis aufs Klassenverzeichnis kopiert. Jetzt müsstest du statt dem Verzeichnis den Computernamen hinschreiben also \\IRGENWDO. Den Namen hast du ja mit dem obigen Code eigentlich schon.

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.12.2002, 13:05 Uhr
Uli



Gruß Mike,

ja den Name habe ich, aber die Funktion von oben kann ich nicht mehr verwenden bzw. nur noch eingeschränkt. Ich muss mir etwas ausdenken was nicht sagt diese Computer sind alle da sondern eine Abfrage ob ein bestimmter Computer da ist. Ich kenn ja die Bezeichnungen der Computer die ich suche. Kennst du eine Möglichkeit nach einer IP oder Computernamen im Netz zu suchen??

Bye Uli
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.12.2002, 13:14 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Wenn du die Namen kennst, warum willst du dann nach den PCs noch suchen?
Du kannst ja versuchen, die Verbindung mit dem PC aufzunehmen. Wenn die Verbindung abgelehnt wird, ist er wahrscheinlich nicht eingeloggt oder so.

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
19.12.2002, 13:19 Uhr
Uli



Weil ich die erst anzeigen soll ob die da sind oder nicht. Mein Chef will das so haben. da kann er besser entscheiden auf welche er die dateien schicken will und kann.

Wie kann ich eine Verbindung aufbauen??

Bye.

PS:Hab dich versucht über ICQ zu bekommen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: