<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Socket Problem]]></title><description><![CDATA[<p>Tach leutz!<br />
Habe eine Win Anwendung geschrieben. Soll ein Chat über Sockets werden.<br />
Ganze einfache Server-Client Verbindung! Aber irgendwie kommt der Text immer nicht bei den anderen an! Hier der Hautpcode:</p>
<pre><code>void CChatDlg::OnRType() 
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    // Steuerelemente mit Variablen synchronisieren
    UpdateData(TRUE);
    // Welcher Modus ist eingestellt?
    if (m_iType == 0) // Entsprechenden Text auf der Schaltfläche festlegen
        m_ctlConnect.SetWindowText(&quot;&amp;Verbinden&quot;);
    else
        m_ctlConnect.SetWindowText(&quot;&amp;Hören&quot;);

}

void CChatDlg::OnBconnect() 
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    // Variablen mit Steuerelementen synchronisieren
    UpdateData(TRUE);
    // Steuerelemente für Verbindung und Typ deaktivieren
    GetDlgItem(IDC_BCONNECT)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_ESERVERNAME)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_ESERVERPORT)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICNAME)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICPORT)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_RCLIENT)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_RSERVER)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICTYPE)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BCLOSE)-&gt;EnableWindow(TRUE);
    // Läuft Anwendung als Client oder Server?
    if (m_iType == 0)
    {
        // Client, einen Standard-Socket erzeugen
        m_sConnectSocket.Create();
        // Verbindung zum Server öffnen
        m_sConnectSocket.Connect(m_strName, m_iPort);
    }
    else
    {
        // Server, einen Socket für den angegebenen Anschluß erzeugen
        m_sListenSocket.Create(m_iPort);
        // Auf Verbindungsgesuche hören
        m_sListenSocket.Listen();
    }
}

void CChatDlg::OnAccept()
{
    // Verbindungsanforderung annehmen
    m_sListenSocket.Accept(m_sConnectSocket);
    // Steuerelemente für Text und Nachrichten aktivieren
    GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);
}

void CChatDlg::OnConnect()
{
    // Steuerelemente für Text und Nachrichten aktivieren
    GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BCLOSE)-&gt;EnableWindow(TRUE);
}

void CChatDlg::OnReceive()
{
    char *pBuf = new char[1025];
    int iBufSize = 1024;
    int iRcvd;
    CString strRecvd;

    // Nachricht empfangen
    iRcvd = m_sConnectSocket.Receive(pBuf, iBufSize);
    // Wurde etwas empfangen?
    if (iRcvd == SOCKET_ERROR)
    {
    }
    else
    {
        // Ende der Nachricht abschneiden
        pBuf[iRcvd] = NULL;
        // Nachricht in einen CString kopieren
        strRecvd = pBuf;
        // Nachricht in Listenfeld der empfangenen Nachrichten eintragen
        m_ctlRecvd.AddString(strRecvd);
        // Variablen mit den Steuerelementen synchronisieren
        UpdateData(FALSE);
    }
}

void CChatDlg::OnClose()
{
    // Den verbundenen Socket schließen
    m_sConnectSocket.Close();
    // Steuerelemente zum Senden von Nachrichten deaktivieren
    GetDlgItem(IDC_EMSG)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_BSEND)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_BCLOSE)-&gt;EnableWindow(FALSE);
    // Läuft Anwendung im Client-Modus?
    if (m_iType == 0)
    {
        // Ja, Steuerelemente zum Konfigurieren der Verbindung aktivieren
        GetDlgItem(IDC_BCONNECT)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_ESERVERNAME)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_ESERVERPORT)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_STATICNAME)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_STATICPORT)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_RCLIENT)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_RSERVER)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_STATICTYPE)-&gt;EnableWindow(TRUE);
    }
}

void CChatDlg::OnBsend() 
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    int iLen;
    int iSent;

    // Steuerelemente mit Variablen synchronisieren
    UpdateData(TRUE);
    // Zu sendende Nachricht vorhanden?
    if (m_strMessage != &quot;&quot;)
    {
        // Länge der Nachricht ermitteln
        iLen = m_strMessage.GetLength();
        // Nachricht senden
        iSent = m_sConnectSocket.Send(LPCTSTR(m_strMessage), iLen);
        // Konnte die Nachricht gesendet werden?
        if (iSent == SOCKET_ERROR)
        {
            MessageBox(&quot;Nachricht konnte nicht gesendet werden!&quot;,&quot;Fehler!&quot;);
        }
        else
        {
            // Nachricht in Listenfeld hinzufügen.
            m_ctlSent.AddString(m_strMessage);
            // Variablen mit Steuerelementen synchronisieren
            UpdateData(FALSE);
        }
    }
    else
    {
            MessageBox(&quot;Gieb zuerst deine Nachricht ein!&quot;,&quot;Kein Text vorhanden!&quot;);
    }
}

void CChatDlg::OnBclose() 
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    // OnClose-Funktion aufrufen
    OnClose();
}
</code></pre>
<p>Wisst ihr da weiter?<br />
thanks,<br />
wer</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/6075/socket-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 16:10:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/6075.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Jun 2003 18:23:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Socket Problem on Sat, 07 Jun 2003 18:23:00 GMT]]></title><description><![CDATA[<p>Tach leutz!<br />
Habe eine Win Anwendung geschrieben. Soll ein Chat über Sockets werden.<br />
Ganze einfache Server-Client Verbindung! Aber irgendwie kommt der Text immer nicht bei den anderen an! Hier der Hautpcode:</p>
<pre><code>void CChatDlg::OnRType() 
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    // Steuerelemente mit Variablen synchronisieren
    UpdateData(TRUE);
    // Welcher Modus ist eingestellt?
    if (m_iType == 0) // Entsprechenden Text auf der Schaltfläche festlegen
        m_ctlConnect.SetWindowText(&quot;&amp;Verbinden&quot;);
    else
        m_ctlConnect.SetWindowText(&quot;&amp;Hören&quot;);

}

void CChatDlg::OnBconnect() 
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    // Variablen mit Steuerelementen synchronisieren
    UpdateData(TRUE);
    // Steuerelemente für Verbindung und Typ deaktivieren
    GetDlgItem(IDC_BCONNECT)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_ESERVERNAME)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_ESERVERPORT)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICNAME)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICPORT)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_RCLIENT)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_RSERVER)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICTYPE)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BCLOSE)-&gt;EnableWindow(TRUE);
    // Läuft Anwendung als Client oder Server?
    if (m_iType == 0)
    {
        // Client, einen Standard-Socket erzeugen
        m_sConnectSocket.Create();
        // Verbindung zum Server öffnen
        m_sConnectSocket.Connect(m_strName, m_iPort);
    }
    else
    {
        // Server, einen Socket für den angegebenen Anschluß erzeugen
        m_sListenSocket.Create(m_iPort);
        // Auf Verbindungsgesuche hören
        m_sListenSocket.Listen();
    }
}

void CChatDlg::OnAccept()
{
    // Verbindungsanforderung annehmen
    m_sListenSocket.Accept(m_sConnectSocket);
    // Steuerelemente für Text und Nachrichten aktivieren
    GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);
}

void CChatDlg::OnConnect()
{
    // Steuerelemente für Text und Nachrichten aktivieren
    GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);
    GetDlgItem(IDC_BCLOSE)-&gt;EnableWindow(TRUE);
}

void CChatDlg::OnReceive()
{
    char *pBuf = new char[1025];
    int iBufSize = 1024;
    int iRcvd;
    CString strRecvd;

    // Nachricht empfangen
    iRcvd = m_sConnectSocket.Receive(pBuf, iBufSize);
    // Wurde etwas empfangen?
    if (iRcvd == SOCKET_ERROR)
    {
    }
    else
    {
        // Ende der Nachricht abschneiden
        pBuf[iRcvd] = NULL;
        // Nachricht in einen CString kopieren
        strRecvd = pBuf;
        // Nachricht in Listenfeld der empfangenen Nachrichten eintragen
        m_ctlRecvd.AddString(strRecvd);
        // Variablen mit den Steuerelementen synchronisieren
        UpdateData(FALSE);
    }
}

void CChatDlg::OnClose()
{
    // Den verbundenen Socket schließen
    m_sConnectSocket.Close();
    // Steuerelemente zum Senden von Nachrichten deaktivieren
    GetDlgItem(IDC_EMSG)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_BSEND)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(FALSE);
    GetDlgItem(IDC_BCLOSE)-&gt;EnableWindow(FALSE);
    // Läuft Anwendung im Client-Modus?
    if (m_iType == 0)
    {
        // Ja, Steuerelemente zum Konfigurieren der Verbindung aktivieren
        GetDlgItem(IDC_BCONNECT)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_ESERVERNAME)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_ESERVERPORT)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_STATICNAME)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_STATICPORT)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_RCLIENT)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_RSERVER)-&gt;EnableWindow(TRUE);
        GetDlgItem(IDC_STATICTYPE)-&gt;EnableWindow(TRUE);
    }
}

void CChatDlg::OnBsend() 
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    int iLen;
    int iSent;

    // Steuerelemente mit Variablen synchronisieren
    UpdateData(TRUE);
    // Zu sendende Nachricht vorhanden?
    if (m_strMessage != &quot;&quot;)
    {
        // Länge der Nachricht ermitteln
        iLen = m_strMessage.GetLength();
        // Nachricht senden
        iSent = m_sConnectSocket.Send(LPCTSTR(m_strMessage), iLen);
        // Konnte die Nachricht gesendet werden?
        if (iSent == SOCKET_ERROR)
        {
            MessageBox(&quot;Nachricht konnte nicht gesendet werden!&quot;,&quot;Fehler!&quot;);
        }
        else
        {
            // Nachricht in Listenfeld hinzufügen.
            m_ctlSent.AddString(m_strMessage);
            // Variablen mit Steuerelementen synchronisieren
            UpdateData(FALSE);
        }
    }
    else
    {
            MessageBox(&quot;Gieb zuerst deine Nachricht ein!&quot;,&quot;Kein Text vorhanden!&quot;);
    }
}

void CChatDlg::OnBclose() 
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    // OnClose-Funktion aufrufen
    OnClose();
}
</code></pre>
<p>Wisst ihr da weiter?<br />
thanks,<br />
wer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/29484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29484</guid><dc:creator><![CDATA[irgendwer]]></dc:creator><pubDate>Sat, 07 Jun 2003 18:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Socket Problem on Sat, 07 Jun 2003 18:26:00 GMT]]></title><description><![CDATA[<p>Gehört nach MFC, hat nix mit Standard-C++ zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/29485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29485</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Sat, 07 Jun 2003 18:26:00 GMT</pubDate></item></channel></rss>