Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Casyncsocket ;d

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 <
000
21.09.2002, 20:48 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Sonntag: Experimentiertag
Also ich hab eine Serveranwendung und eine Clientanwendung. Der Client kann sich fehlerlos beim Server Anmleden. Ich sehe die IP des Clients - und der Client sieht meinen Servernamen. Wenn ich jetzt das ganze übers Internet mache, sehe ich die IP und der Client den Servernamen. Versucht der Client mir einen String zu senden, bekomm ich nix
Das lustige an der Geschichte: Wenn ich zusätzlich dann noch in meinem lokalen Netzwerk auf die Serverapplikation zugreife, kann ich ohne Probleme Strings senden.
Hat jemand von euch schon mal so nen (Programmier)Fehler gehabt??

Danke x <unendlich>
mfg mike
PS: Das mit dem Source is ziemlich blöd - wegen der Länge. Ich kanns leider auch nicht zum downloaden zur Verfügung stellen (i bin halt a bisserl hinten nach ;D ). Aber ich kann den Source gern per mail verschicken - darüber würde ich mich freuen
--

Dieser Post wurde am 21.09.2002 um 20:48 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.09.2002, 22:38 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Hoppla. Hatte nur einen Brief ohne Adresse abgeschickt.

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.09.2002, 19:02 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ich versuch jetzt schon seit längerem eine Datei über CAsyncSocket zu schicken. Ich habs sie in 1024 Pakete zerlegt und weggeschickt.
Nur gibt es da 2 Probleme: Wenn die Datei kleiner als 1024 ist funktionierts nicht und wenn das letzte Pakete auch kleiner als 1024 ist, gehst auch nicht mehr.
Kennt jemand eine zuverlässige Funktion zum schicken von Dateien??

Schicken: m_sckClient.Send(...);
Empfangen: Direkt in OnReceive von CAsyncSocket

Danke x <unendlich>

mfg mike
PS: Das ist eigentlich nur ein Umweg. Ich speichere nämlich in einem CObArray Userdaten ab. Wenn jemand ne möglichkeit zum Senden kennt, wäre das ganz super
Habs schon so probiert: m_sckClient.Send((char*)&pUser, sizeof pUser); In OnReceive hatt ich dann ein char[1024]. Ich konnte es aber leider nimma in CUser casten ;D
--

Dieser Post wurde am 22.09.2002 um 19:02 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.09.2002, 20:20 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ich habs heut wieder versucht
Immer wenn ich einen String übers lokale Netz schicke gehts - aber im Internet gehts nimma.
Ist CAsyncSocket nicht für Internet gedacht??

Danke x <unendlich>

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.09.2002, 19:57 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hallo doch sicherlich,
hab hier folgende Funktion:

(ist per CHttpConnection, aber das Prinzip müsste deutlich sein)


C++:
BOOL GetHttpFile(CString strFile, CString *strUpdateFileContent)
{
    if(!strUpdateFileContent)
        return 0;

    DWORD connection = 0;
    CInternetSession *InternetSession = NULL;

    if( InternetGetConnectedState(&connection,0) != 1)
    {
        return 0;
    }

    try
    {
        InternetSession = new CInternetSession();
    }
    catch (CInternetException *e)
    {
        return 0;
    }

    if(InternetSession == NULL)
    {
        return 0;
    }

    CString strDlPath = "http:/ /www.flo-soft.de.vu/files/" + strFile;

    CStdioFile* pRemoteFile  = NULL;
    CFile* pLocalFile = NULL;

    char buffer[PACKET_SIZE];
    CString strRemotePath = strDlPath;
    CString strLocalPath = "C:\\" + strFile;
    CString strTemp;

    // lokale Datei falls vorhanden löschen
    DeleteFile(strLocalPath);

    try
    {
        pRemoteFile = InternetSession->OpenURL((LPCSTR)strRemotePath,1,INTERNET_FLAG_TRANSFER_ASCII);
    }
    catch ( CInternetException *e)
    {
        InternetSession->Close();
        return 0;
    }

    if(pRemoteFile->m_hFile==NULL)
    {
        InternetSession->Close();
        return 0;
    }

     try
    {
        pLocalFile = new CFile(strLocalPath,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);
    }
    catch ( CFileException *e)
    {
        e->Delete();
        InternetSession->Close();
        return 0;
    }

    LONG lRemoteLength = 0;
    LONG lCurrentLength = 0;

    try
    {
        lRemoteLength = (LONG)pRemoteFile->SeekToEnd();
        pRemoteFile->SeekToBegin();
    }
    catch ( CInternetException *e)
    {
        InternetSession->Close();
        return 0;
    }

    double dRemoteLength = ( (double)lRemoteLength ) / 1024.0;

    if(lRemoteLength-PACKET_SIZE < 0)
    {
        pRemoteFile->Read(buffer,lRemoteLength);
        strTemp = CString(buffer, lRemoteLength);
        strUpdateFileContent->Format("%s",strTemp);
    }
    else
    {
        while( (lCurrentLength + PACKET_SIZE) < lRemoteLength)
        {
            pRemoteFile->Read(buffer,PACKET_SIZE);
            strTemp = CString(buffer, PACKET_SIZE);
            strUpdateFileContent->Format("%s",strTemp);
            lCurrentLength += PACKET_SIZE;
        }
    }
    strTemp.Format("%s",strUpdateFileContent->GetBuffer(strUpdateFileContent->GetLength()));
    pLocalFile->Write(strTemp,lRemoteLength);
    pLocalFile->SetLength(lRemoteLength);

    pRemoteFile->Close();
    pLocalFile->Close();

    return 1;
}




In dem Pointer strUpdateFileContent ist dann der Inhalt der gelesenen datei ...
Wenn du die Datei sendest würde ich an deiner stelle immer erst senden wie lang die datei ist ...
--
class God : public ChuckNorris { };

Dieser Post wurde am 26.09.2002 um 12:15 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.09.2002, 21:39 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Danke für dein Sample!!
Werds am Wochenende gleich ausprobieren

THX!!!
mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: