Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Casyncsocket Verbindung übers Internet

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
28.09.2002, 10:04 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo,
ich versuche eine Tcp Verbindung übers internet aufzubauen, Server "horcht" auf der richtigen Ip, nur wenn ich versuche zu connecten, bekomme ich immer einen Timeout ...

Was mach ich da falsch?

Client:

C++:
            if(!m_ClientSocket.Create( iPort ,SOCK_STREAM,FD_READ|FD_WRITE|FD_OOB|FD_ACCEPT|FD_CONNECT|FD_CLOSE,GetHostIPAddressString()) )
            {
                AddStatus("> m_ClientSocket.Create(%d,...,%s) failed",iPort,GetHostIPAddressString());
                MessageBox("Error, can't create Socket","ERROR",MB_OK);
            }
            AddStatus("> m_ClientSocket.Create(%d,...,%s) done",iPort,GetHostIPAddressString());
            m_ClientSocket.Bind(iPort,GetHostIPAddressString());

            iPort = atoi(m_Game.m_Server[0].strPort);
            m_ClientSocket.Connect(m_Game.m_Server[0].strIp,iPort);
            if(GetLastError()!=WSAEWOULDBLOCK)
            {
                AddStatus("> m_ClientSocket.Connect(%s,%d) failed",m_Game.m_Server[0].strIp,iPort);
                MessageBox("Connection failed","ERROR",MB_OK);
                ::SetFocus(m_glFenster.m_hWnd);
                m_ClientSocket.Close();
            }
            else
            {
                AddStatus("> m_ClientSocket.Connect(%s,%d) done",m_Game.m_Server[0].strIp,iPort);
                m_Game.m_strMenu4[4] = "Waiting for reply";
            }



Er schreibt immer WSAEWOULDBLOCK, und dann krieg ich nach 30s einen timout ...

Server:

C++:
    if(m_ServerSocket.Create(m_iPort,SOCK_STREAM,FD_READ|FD_WRITE|FD_OOB|FD_ACCEPT|FD_CONNECT|FD_CLOSE,m_strAddress))
    {
        AddStatus("> SetServer2Listen: m_ServerSocket.Create(%d,...,%s) done",m_iPort,m_strAddress);
    }
    else
    {
        AddStatus("> SetServer2Listen: m_ServerSocket.Create(%d,...,%s) failed",m_iPort,m_strAddress);
        return 0;
    }

    m_ServerSocket.SetParent(m_hParent,m_hStatus,m_hConUser);

    if(m_ServerSocket.Listen(m_iMaxUser))
    {
        CString strLocal;
        UINT iPort;
        m_ServerSocket.GetSockName(strLocal,iPort);
        AddStatus("> SetServer2Listen: m_ServerSocket.Listen(%d) on %s:%d done",m_iMaxUser,strLocal,iPort);
    }
    else
    {
        AddStatus("> SetServer2Listen: m_ServerSocket.Listen(%d) failed",m_iMaxUser);
        return 0;
    }
    return 1;



Kann es sein das er nicht connected da ich hinter einem router sitze?
Oder muss ich irgendwie den Timeout höher stellen?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.09.2002, 10:05 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Achja nochwas, im lokalen Netzwerk funktioniert es
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.09.2002, 09:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Am Clienten scheint es nicht zu liegen, einen telnet server anzuwählen im internet funktioniert ...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.09.2002, 10:49 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Flo,
bist Du dir sicher das Deine Ip stimmt (da es ja lokal funzt..)?
Ansonst sieht Dein Quellcode doch "lecker" aus!
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.09.2002, 12:33 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo Uwe,

die IP ist/war korrekt, bei anderen ips kam "Connection forcefully rejected"

Ich hab das ganze nun mal andersrum getestet (also client bei nem freund übers internet, server bei mir), da hat alles wunderbar geklappt!

Ist das irgendein Bug beim T-DSL?

Er kann auch bei anderen Spielen z.B. EmpireEarth, keinen Server aufmachen ...

Hat er da vielleicht was falsch eingestellt?
--
class God : public ChuckNorris { };

Dieser Post wurde am 29.09.2002 um 12:39 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
29.09.2002, 18:07 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Flo,
"Gelbe Seiten"! Soll heisen, dass ich mit der DSL Geschichte NULL-Ahnung hab.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
29.09.2002, 19:33 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


achso naja egal...

ich soll/muss ja eh für unser spiel den server auf meinem rechner hosten
--
class God : public ChuckNorris { };

Dieser Post wurde am 29.09.2002 um 19:33 Uhr von FloSoft editiert.
 
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: