<?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[Verbindung SOCKET klappt net....]]></title><description><![CDATA[<p>Hi Leutz!!<br />
Ich machte alles nach Tutorial von <a href="http://www.mut.de" rel="nofollow">www.mut.de</a><br />
Mein Programm SOCK.EXE führte ich 2mal aus, steht da, dann sollte man verbinden können. Macht alles ja, nur eine verbindung kriegt der nich zu stande!</p>
<p>Hier der Code für die Klasse &quot;CMySocket&quot;:</p>
<pre><code class="language-cpp">// MySocket.cpp: Implementierungsdatei
//

#include &quot;stdafx.h&quot;
#include &quot;Sock.h&quot;
#include &quot;MySocket.h&quot;
#include &quot;SockDlg.h&quot;

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMySocket

CMySocket::CMySocket()
{
}

CMySocket::~CMySocket()
{
}

//Die folgenden Zeilen nicht bearbeiten. Sie werden vom Klassen-Assistenten benötigt.
#if 0
BEGIN_MESSAGE_MAP(CMySocket, CAsyncSocket)
    //{{AFX_MSG_MAP(CMySocket)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif  // 0

/////////////////////////////////////////////////////////////////////////////
// Member-Funktion CMySocket 

void CMySocket::SetParent(CDialog *pWnd)
{
m_pWnd = pWnd;
}

 void CMySocket::OnAccept(int nErrorCode)
{
 if (nErrorCode == 0)
 ((CSockDlg*)m_pWnd)-&gt;OnAccept;
}

void CMySocket::OnConnect()
{

}

void CMySocket::OnClose()
{

}

void CMySocket::OnReceive()
{

}

void CMySocket::OnSend()
{

}
</code></pre>
<p>Und noch der Code von &quot;CSockDlg&quot;: (Nur in diesen 2 musste ich sachen machen! Beim kompilieren 0 Fehler, 0 Warnungen...)<br />
[cpp]<br />
// SockDlg.cpp : Implementierungsdatei<br />
//</p>
<p>#include &quot;stdafx.h&quot;<br />
#include &quot;Sock.h&quot;<br />
#include &quot;SockDlg.h&quot;</p>
<p>#ifdef <em>DEBUG<br />
#define new DEBUG_NEW<br />
#undef THIS_FILE<br />
static char THIS_FILE[] = __FILE</em>_;<br />
#endif</p>
<p>/////////////////////////////////////////////////////////////////////////////<br />
// CAboutDlg-Dialogfeld für Anwendungsbefehl &quot;Info&quot;</p>
<p>class CAboutDlg : public CDialog<br />
{<br />
public:<br />
CAboutDlg();</p>
<p>// Dialogfelddaten<br />
//{{AFX_DATA(CAboutDlg)<br />
enum { IDD = IDD_ABOUTBOX };<br />
//}}AFX_DATA</p>
<p>// Vom Klassenassistenten generierte Überladungen virtueller Funktionen<br />
//{{AFX_VIRTUAL(CAboutDlg)<br />
protected:<br />
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung<br />
//}}AFX_VIRTUAL</p>
<p>// Implementierung<br />
protected:<br />
//{{AFX_MSG(CAboutDlg)<br />
//}}AFX_MSG<br />
DECLARE_MESSAGE_MAP()<br />
};</p>
<p>CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)<br />
{<br />
//{{AFX_DATA_INIT(CAboutDlg)<br />
//}}AFX_DATA_INIT<br />
}</p>
<p>void CAboutDlg::DoDataExchange(CDataExchange* pDX)<br />
{<br />
CDialog::DoDataExchange(pDX);<br />
//{{AFX_DATA_MAP(CAboutDlg)<br />
//}}AFX_DATA_MAP<br />
}</p>
<p>BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)<br />
//{{AFX_MSG_MAP(CAboutDlg)<br />
// Keine Nachrichten-Handler<br />
//}}AFX_MSG_MAP<br />
END_MESSAGE_MAP()</p>
<p>/////////////////////////////////////////////////////////////////////////////<br />
// CSockDlg Dialogfeld</p>
<p>CSockDlg::CSockDlg(CWnd* pParent /<em>=NULL</em>/)<br />
: CDialog(CSockDlg::IDD, pParent)<br />
{<br />
//{{AFX_DATA_INIT(CSockDlg)<br />
m_strMessage = _T(&quot;&quot;);<br />
m_strName = _T(&quot;&quot;);<br />
m_iPort = 0;<br />
m_iType = -1;<br />
//}}AFX_DATA_INIT<br />
// Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf benötigt<br />
m_hIcon = AfxGetApp()-&gt;LoadIcon(IDR_MAINFRAME);<br />
}</p>
<p>void CSockDlg::DoDataExchange(CDataExchange* pDX)<br />
{<br />
CDialog::DoDataExchange(pDX);<br />
//{{AFX_DATA_MAP(CSockDlg)<br />
DDX_Control(pDX, IDC_LSENT, m_ctlSent);<br />
DDX_Control(pDX, IDC_LRECVD, m_ctlRecvd);<br />
DDX_Control(pDX, IDC_BCONNECT, m_ctlConnect);<br />
DDX_Text(pDX, IDC_EMSG, m_strMessage);<br />
DDX_Text(pDX, IDC_ESERVERNAME, m_strName);<br />
DDX_Text(pDX, IDC_ESERVPORT, m_iPort);<br />
DDX_Radio(pDX, IDC_RCLIENT, m_iType);<br />
//}}AFX_DATA_MAP<br />
}</p>
<p>BEGIN_MESSAGE_MAP(CSockDlg, CDialog)<br />
//{{AFX_MSG_MAP(CSockDlg)<br />
ON_WM_SYSCOMMAND()<br />
ON_WM_PAINT()<br />
ON_WM_QUERYDRAGICON()<br />
ON_BN_CLICKED(IDC_RCLIENT, OnRType)<br />
ON_BN_CLICKED(IDC_RSERVER, OnRType)<br />
ON_BN_CLICKED(IDC_BCONNECT, OnBconnect)<br />
//}}AFX_MSG_MAP<br />
END_MESSAGE_MAP()</p>
<p>/////////////////////////////////////////////////////////////////////////////<br />
// CSockDlg Nachrichten-Handler</p>
<p>BOOL CSockDlg::OnInitDialog()<br />
{<br />
CDialog::OnInitDialog();</p>
<p>// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.</p>
<p>// IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden.<br />
ASSERT((IDM_ABOUTBOX &amp; 0xFFF0) == IDM_ABOUTBOX);<br />
ASSERT(IDM_ABOUTBOX &lt; 0xF000);</p>
<p>CMenu* pSysMenu = GetSystemMenu(FALSE);<br />
if (pSysMenu != NULL)<br />
{<br />
CString strAboutMenu;<br />
strAboutMenu.LoadString(IDS_ABOUTBOX);<br />
if (!strAboutMenu.IsEmpty())<br />
{<br />
pSysMenu-&gt;AppendMenu(MF_SEPARATOR);<br />
pSysMenu-&gt;AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);<br />
}<br />
}</p>
<p>// Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt<br />
// wenn das Hauptfenster der Anwendung kein Dialogfeld ist<br />
SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden<br />
SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden</p>
<p>// ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen<br />
m_iType=0;<br />
m_strName=&quot;loopback&quot;;<br />
m_iPort=4000;<br />
UpdateData(FALSE);<br />
m_sConnectSocket.SetParent(this);<br />
m_sListenSocket.SetParent(this);</p>
<p>return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten<br />
}</p>
<p>void CSockDlg::OnSysCommand(UINT nID, LPARAM lParam)<br />
{<br />
if ((nID &amp; 0xFFF0) == IDM_ABOUTBOX)<br />
{<br />
CAboutDlg dlgAbout;<br />
dlgAbout.DoModal();<br />
}<br />
else<br />
{<br />
CDialog::OnSysCommand(nID, lParam);<br />
}<br />
}</p>
<p>// Wollen Sie Ihrem Dialogfeld eine Schaltfläche &quot;Minimieren&quot; hinzufügen, benötigen Sie<br />
// den nachstehenden Code, um das Symbol zu zeichnen. Für MFC-Anwendungen, die das<br />
// Dokument/Ansicht-Modell verwenden, wird dies automatisch für Sie erledigt.</p>
<p>void CSockDlg::OnPaint()<br />
{<br />
if (IsIconic())<br />
{<br />
CPaintDC dc(this); // Gerätekontext für Zeichnen</p>
<p>SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);</p>
<p>// Symbol in Client-Rechteck zentrieren<br />
int cxIcon = GetSystemMetrics(SM_CXICON);<br />
int cyIcon = GetSystemMetrics(SM_CYICON);<br />
CRect rect;<br />
GetClientRect(&amp;rect);<br />
int x = (rect.Width() - cxIcon + 1) / 2;<br />
int y = (rect.Height() - cyIcon + 1) / 2;</p>
<p>// Symbol zeichnen<br />
dc.DrawIcon(x, y, m_hIcon);<br />
}<br />
else<br />
{<br />
CDialog::OnPaint();<br />
}<br />
}</p>
<p>// Die Systemaufrufe fragen den Cursorform ab, die angezeigt werden soll, während der Benutzer<br />
// das zum Symbol verkleinerte Fenster mit der Maus zieht.<br />
HCURSOR CSockDlg::OnQueryDragIcon()<br />
{<br />
return (HCURSOR) m_hIcon;<br />
}</p>
<p>void CSockDlg::OnRType()<br />
{<br />
// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen<br />
UpdateData(TRUE);<br />
if(m_iType == 0)<br />
m_ctlConnect.SetWindowText(&quot;&amp;Verbinden&quot;);<br />
else<br />
m_ctlConnect.SetWindowText(&quot;&amp;Hören&quot;);<br />
}</p>
<p>//DEL void CSockDlg::OnAccept(int nErrorCode)<br />
//DEL {<br />
//DEL<br />
//DEL }</p>
<p>void CSockDlg::OnBconnect()<br />
{<br />
// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen<br />
UpdateData(TRUE);<br />
GetDlgItem(IDC_BCONNECT)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_ESERVERNAME)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_ESERVPORT)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_STATICNAME)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_STATICPORT)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_RCLIENT)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_RSERVER)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_STATICTYPE)-&gt;EnableWindow(FALSE);<br />
//Läuft Anwendung aus Client oder Server?<br />
if (m_iType == 0)<br />
{<br />
//Client, einen **StandardSocket erzeugen<br />
m_sConnectSocket.Create();<br />
//Verbindung zum Server öffnen<br />
m_sConnectSocket.Connect(m_strName, m_iPort);<br />
}<br />
else<br />
{<br />
//Server, einen Socket für den angegeben Anschluss erzeugen<br />
m_sListenSocket.Create(m_iPort);<br />
//Auf Verbindungsgesuche hören<br />
m_sListenSocket.Listen();<br />
}<br />
}</p>
<p>void CSockDlg::OnAccept()<br />
{<br />
m_sListenSocket.Accept(m_sConnectSocket);<br />
GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);<br />
}</p>
<p>void CSockDlg::OnConnect()<br />
{<br />
GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_BCLOSE)-&gt;EnableWindow(TRUE);<br />
}</p>
<p>void CSockDlg::OnSend()<br />
{</p>
<p>}</p>
<p>void CSockDlg::OnReceive()<br />
{</p>
<p>}</p>
<p>void CSockDlg::OnClose()<br />
{</p>
<p>}<br />
[/cpp]**</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/1784/verbindung-socket-klappt-net</link><generator>RSS for Node</generator><lastBuildDate>Sat, 20 Jun 2026 14:04:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/1784.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Aug 2002 20:34:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verbindung SOCKET klappt net.... on Sat, 24 Aug 2002 20:34:00 GMT]]></title><description><![CDATA[<p>Hi Leutz!!<br />
Ich machte alles nach Tutorial von <a href="http://www.mut.de" rel="nofollow">www.mut.de</a><br />
Mein Programm SOCK.EXE führte ich 2mal aus, steht da, dann sollte man verbinden können. Macht alles ja, nur eine verbindung kriegt der nich zu stande!</p>
<p>Hier der Code für die Klasse &quot;CMySocket&quot;:</p>
<pre><code class="language-cpp">// MySocket.cpp: Implementierungsdatei
//

#include &quot;stdafx.h&quot;
#include &quot;Sock.h&quot;
#include &quot;MySocket.h&quot;
#include &quot;SockDlg.h&quot;

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMySocket

CMySocket::CMySocket()
{
}

CMySocket::~CMySocket()
{
}

//Die folgenden Zeilen nicht bearbeiten. Sie werden vom Klassen-Assistenten benötigt.
#if 0
BEGIN_MESSAGE_MAP(CMySocket, CAsyncSocket)
    //{{AFX_MSG_MAP(CMySocket)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif  // 0

/////////////////////////////////////////////////////////////////////////////
// Member-Funktion CMySocket 

void CMySocket::SetParent(CDialog *pWnd)
{
m_pWnd = pWnd;
}

 void CMySocket::OnAccept(int nErrorCode)
{
 if (nErrorCode == 0)
 ((CSockDlg*)m_pWnd)-&gt;OnAccept;
}

void CMySocket::OnConnect()
{

}

void CMySocket::OnClose()
{

}

void CMySocket::OnReceive()
{

}

void CMySocket::OnSend()
{

}
</code></pre>
<p>Und noch der Code von &quot;CSockDlg&quot;: (Nur in diesen 2 musste ich sachen machen! Beim kompilieren 0 Fehler, 0 Warnungen...)<br />
[cpp]<br />
// SockDlg.cpp : Implementierungsdatei<br />
//</p>
<p>#include &quot;stdafx.h&quot;<br />
#include &quot;Sock.h&quot;<br />
#include &quot;SockDlg.h&quot;</p>
<p>#ifdef <em>DEBUG<br />
#define new DEBUG_NEW<br />
#undef THIS_FILE<br />
static char THIS_FILE[] = __FILE</em>_;<br />
#endif</p>
<p>/////////////////////////////////////////////////////////////////////////////<br />
// CAboutDlg-Dialogfeld für Anwendungsbefehl &quot;Info&quot;</p>
<p>class CAboutDlg : public CDialog<br />
{<br />
public:<br />
CAboutDlg();</p>
<p>// Dialogfelddaten<br />
//{{AFX_DATA(CAboutDlg)<br />
enum { IDD = IDD_ABOUTBOX };<br />
//}}AFX_DATA</p>
<p>// Vom Klassenassistenten generierte Überladungen virtueller Funktionen<br />
//{{AFX_VIRTUAL(CAboutDlg)<br />
protected:<br />
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung<br />
//}}AFX_VIRTUAL</p>
<p>// Implementierung<br />
protected:<br />
//{{AFX_MSG(CAboutDlg)<br />
//}}AFX_MSG<br />
DECLARE_MESSAGE_MAP()<br />
};</p>
<p>CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)<br />
{<br />
//{{AFX_DATA_INIT(CAboutDlg)<br />
//}}AFX_DATA_INIT<br />
}</p>
<p>void CAboutDlg::DoDataExchange(CDataExchange* pDX)<br />
{<br />
CDialog::DoDataExchange(pDX);<br />
//{{AFX_DATA_MAP(CAboutDlg)<br />
//}}AFX_DATA_MAP<br />
}</p>
<p>BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)<br />
//{{AFX_MSG_MAP(CAboutDlg)<br />
// Keine Nachrichten-Handler<br />
//}}AFX_MSG_MAP<br />
END_MESSAGE_MAP()</p>
<p>/////////////////////////////////////////////////////////////////////////////<br />
// CSockDlg Dialogfeld</p>
<p>CSockDlg::CSockDlg(CWnd* pParent /<em>=NULL</em>/)<br />
: CDialog(CSockDlg::IDD, pParent)<br />
{<br />
//{{AFX_DATA_INIT(CSockDlg)<br />
m_strMessage = _T(&quot;&quot;);<br />
m_strName = _T(&quot;&quot;);<br />
m_iPort = 0;<br />
m_iType = -1;<br />
//}}AFX_DATA_INIT<br />
// Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf benötigt<br />
m_hIcon = AfxGetApp()-&gt;LoadIcon(IDR_MAINFRAME);<br />
}</p>
<p>void CSockDlg::DoDataExchange(CDataExchange* pDX)<br />
{<br />
CDialog::DoDataExchange(pDX);<br />
//{{AFX_DATA_MAP(CSockDlg)<br />
DDX_Control(pDX, IDC_LSENT, m_ctlSent);<br />
DDX_Control(pDX, IDC_LRECVD, m_ctlRecvd);<br />
DDX_Control(pDX, IDC_BCONNECT, m_ctlConnect);<br />
DDX_Text(pDX, IDC_EMSG, m_strMessage);<br />
DDX_Text(pDX, IDC_ESERVERNAME, m_strName);<br />
DDX_Text(pDX, IDC_ESERVPORT, m_iPort);<br />
DDX_Radio(pDX, IDC_RCLIENT, m_iType);<br />
//}}AFX_DATA_MAP<br />
}</p>
<p>BEGIN_MESSAGE_MAP(CSockDlg, CDialog)<br />
//{{AFX_MSG_MAP(CSockDlg)<br />
ON_WM_SYSCOMMAND()<br />
ON_WM_PAINT()<br />
ON_WM_QUERYDRAGICON()<br />
ON_BN_CLICKED(IDC_RCLIENT, OnRType)<br />
ON_BN_CLICKED(IDC_RSERVER, OnRType)<br />
ON_BN_CLICKED(IDC_BCONNECT, OnBconnect)<br />
//}}AFX_MSG_MAP<br />
END_MESSAGE_MAP()</p>
<p>/////////////////////////////////////////////////////////////////////////////<br />
// CSockDlg Nachrichten-Handler</p>
<p>BOOL CSockDlg::OnInitDialog()<br />
{<br />
CDialog::OnInitDialog();</p>
<p>// Hinzufügen des Menübefehls &quot;Info...&quot; zum Systemmenü.</p>
<p>// IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden.<br />
ASSERT((IDM_ABOUTBOX &amp; 0xFFF0) == IDM_ABOUTBOX);<br />
ASSERT(IDM_ABOUTBOX &lt; 0xF000);</p>
<p>CMenu* pSysMenu = GetSystemMenu(FALSE);<br />
if (pSysMenu != NULL)<br />
{<br />
CString strAboutMenu;<br />
strAboutMenu.LoadString(IDS_ABOUTBOX);<br />
if (!strAboutMenu.IsEmpty())<br />
{<br />
pSysMenu-&gt;AppendMenu(MF_SEPARATOR);<br />
pSysMenu-&gt;AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);<br />
}<br />
}</p>
<p>// Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt<br />
// wenn das Hauptfenster der Anwendung kein Dialogfeld ist<br />
SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden<br />
SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden</p>
<p>// ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen<br />
m_iType=0;<br />
m_strName=&quot;loopback&quot;;<br />
m_iPort=4000;<br />
UpdateData(FALSE);<br />
m_sConnectSocket.SetParent(this);<br />
m_sListenSocket.SetParent(this);</p>
<p>return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten<br />
}</p>
<p>void CSockDlg::OnSysCommand(UINT nID, LPARAM lParam)<br />
{<br />
if ((nID &amp; 0xFFF0) == IDM_ABOUTBOX)<br />
{<br />
CAboutDlg dlgAbout;<br />
dlgAbout.DoModal();<br />
}<br />
else<br />
{<br />
CDialog::OnSysCommand(nID, lParam);<br />
}<br />
}</p>
<p>// Wollen Sie Ihrem Dialogfeld eine Schaltfläche &quot;Minimieren&quot; hinzufügen, benötigen Sie<br />
// den nachstehenden Code, um das Symbol zu zeichnen. Für MFC-Anwendungen, die das<br />
// Dokument/Ansicht-Modell verwenden, wird dies automatisch für Sie erledigt.</p>
<p>void CSockDlg::OnPaint()<br />
{<br />
if (IsIconic())<br />
{<br />
CPaintDC dc(this); // Gerätekontext für Zeichnen</p>
<p>SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);</p>
<p>// Symbol in Client-Rechteck zentrieren<br />
int cxIcon = GetSystemMetrics(SM_CXICON);<br />
int cyIcon = GetSystemMetrics(SM_CYICON);<br />
CRect rect;<br />
GetClientRect(&amp;rect);<br />
int x = (rect.Width() - cxIcon + 1) / 2;<br />
int y = (rect.Height() - cyIcon + 1) / 2;</p>
<p>// Symbol zeichnen<br />
dc.DrawIcon(x, y, m_hIcon);<br />
}<br />
else<br />
{<br />
CDialog::OnPaint();<br />
}<br />
}</p>
<p>// Die Systemaufrufe fragen den Cursorform ab, die angezeigt werden soll, während der Benutzer<br />
// das zum Symbol verkleinerte Fenster mit der Maus zieht.<br />
HCURSOR CSockDlg::OnQueryDragIcon()<br />
{<br />
return (HCURSOR) m_hIcon;<br />
}</p>
<p>void CSockDlg::OnRType()<br />
{<br />
// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen<br />
UpdateData(TRUE);<br />
if(m_iType == 0)<br />
m_ctlConnect.SetWindowText(&quot;&amp;Verbinden&quot;);<br />
else<br />
m_ctlConnect.SetWindowText(&quot;&amp;Hören&quot;);<br />
}</p>
<p>//DEL void CSockDlg::OnAccept(int nErrorCode)<br />
//DEL {<br />
//DEL<br />
//DEL }</p>
<p>void CSockDlg::OnBconnect()<br />
{<br />
// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen<br />
UpdateData(TRUE);<br />
GetDlgItem(IDC_BCONNECT)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_ESERVERNAME)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_ESERVPORT)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_STATICNAME)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_STATICPORT)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_RCLIENT)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_RSERVER)-&gt;EnableWindow(FALSE);<br />
GetDlgItem(IDC_STATICTYPE)-&gt;EnableWindow(FALSE);<br />
//Läuft Anwendung aus Client oder Server?<br />
if (m_iType == 0)<br />
{<br />
//Client, einen **StandardSocket erzeugen<br />
m_sConnectSocket.Create();<br />
//Verbindung zum Server öffnen<br />
m_sConnectSocket.Connect(m_strName, m_iPort);<br />
}<br />
else<br />
{<br />
//Server, einen Socket für den angegeben Anschluss erzeugen<br />
m_sListenSocket.Create(m_iPort);<br />
//Auf Verbindungsgesuche hören<br />
m_sListenSocket.Listen();<br />
}<br />
}</p>
<p>void CSockDlg::OnAccept()<br />
{<br />
m_sListenSocket.Accept(m_sConnectSocket);<br />
GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);<br />
}</p>
<p>void CSockDlg::OnConnect()<br />
{<br />
GetDlgItem(IDC_EMSG)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_BSEND)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_STATICMSG)-&gt;EnableWindow(TRUE);<br />
GetDlgItem(IDC_BCLOSE)-&gt;EnableWindow(TRUE);<br />
}</p>
<p>void CSockDlg::OnSend()<br />
{</p>
<p>}</p>
<p>void CSockDlg::OnReceive()<br />
{</p>
<p>}</p>
<p>void CSockDlg::OnClose()<br />
{</p>
<p>}<br />
[/cpp]**</p>
]]></description><link>https://www.c-plusplus.net/forum/post/8013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/8013</guid><dc:creator><![CDATA[Die Schweizerische Post]]></dc:creator><pubDate>Sat, 24 Aug 2002 20:34:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung SOCKET klappt net.... on Sat, 24 Aug 2002 22:19:00 GMT]]></title><description><![CDATA[<p>nabend,</p>
<p>sieht eigentlich richtig aus. woher weisst du, dass keine verbindung zustande kommt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/8014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/8014</guid><dc:creator><![CDATA[Lightbringer]]></dc:creator><pubDate>Sat, 24 Aug 2002 22:19:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung SOCKET klappt net.... on Sat, 24 Aug 2002 22:36:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Original erstellt von Lightbringer:<br />
**nabend,</p>
<p>sieht eigentlich richtig aus. woher weisst du, dass keine verbindung zustande kommt?**</p>
</blockquote>
<p>wenn eine Verbindung besteht werden Steuerelemente aktiviert bzw. deaktiviert! Daran sieht man das eigentlich nur...</p>
<p>Aber das Tutorial - jedenfalls das kapitel - ist fehlerfrei, da wirst du dich wohl irgendwo vertippt haben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/8015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/8015</guid><dc:creator><![CDATA[BF_31]]></dc:creator><pubDate>Sat, 24 Aug 2002 22:36:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung SOCKET klappt net.... on Sun, 25 Aug 2002 07:58:00 GMT]]></title><description><![CDATA[<p>Hmmm... Ja, könnte durchaus möglich sein.<br />
Danke trozdem!<br />
Ich werde es nochmals von vorn versuchen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/8016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/8016</guid><dc:creator><![CDATA[Die Schweizerische Post]]></dc:creator><pubDate>Sun, 25 Aug 2002 07:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung SOCKET klappt net.... on Sun, 25 Aug 2002 08:37:00 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ist das wirklich fehlerfrei ?<br />
Ich dachte da sind 2 Fehler drin ?<br />
Hab das Buch jetzt leider nicht hier, aber ich glaube<br />
bei den Bezeichnungen für den Server hat sich der Fehlerteufel<br />
eingeschlichen.</p>
<p>Gruß Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/8017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/8017</guid><dc:creator><![CDATA[Chris1986]]></dc:creator><pubDate>Sun, 25 Aug 2002 08:37:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung SOCKET klappt net.... on Fri, 19 Mar 2004 18:05:21 GMT]]></title><description><![CDATA[<p>Ich habe das &quot;Tutorial&quot; ebenfalls mühevoll abgetippt und hab leider das selbe Problem. Hat vielleicht jemand das Buch C++ in 21 Tagen und könnte mal das entsprechende Listing also den Original MUT Quellcode Posten.</p>
<p>Es geht um Kapitel 20:<br />
<a href="http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/kap20.htm" rel="nofollow">http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/kap20.htm</a></p>
<p>-danke im Vorraus-<br />
hever</p>
]]></description><link>https://www.c-plusplus.net/forum/post/484521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/484521</guid><dc:creator><![CDATA[Hever]]></dc:creator><pubDate>Fri, 19 Mar 2004 18:05:21 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung SOCKET klappt net.... on Fri, 19 Mar 2004 19:00:30 GMT]]></title><description><![CDATA[<p>Hi!<br />
Da ich mich reinzufällig auch gerade mit Sockets beschäftige, habe ich gestern auch das tutorial gemacht. Ich glaube ich weiß wo das Problem deines Programmes ist, und zwar hier:</p>
<pre><code class="language-cpp">void CMySocket::OnAccept(int nErrorCode)
{
 if (nErrorCode == 0)
 ((CSockDlg*)m_pWnd)-&gt;OnAccept; &lt;---
}
</code></pre>
<p>Man sieht es nicht auf den ersten blick, aber du hast hinter dem OnAccept die beiden Klammern vergessen, sollte also so aussehen:</p>
<pre><code class="language-cpp">void CMySocket::OnAccept(int nErrorCode)
{
 if (nErrorCode == 0)
 ((CSockDlg*)m_pWnd)-&gt;OnAccept(); &lt;---
}
</code></pre>
<p>Mir ist es schon öfter Passiert das wegen den dämlichen void klammern etwas nicht funktioniert hat. Das blöde ist ja, dass der Compiler manchmal keine Fehlermeldung, geschweige denn warnung ausgibt... Probier einfach mal aus ob es jetzt klappt.</p>
<p>Perner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/484555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/484555</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Fri, 19 Mar 2004 19:00:30 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung SOCKET klappt net.... on Fri, 19 Mar 2004 19:09:35 GMT]]></title><description><![CDATA[<p>Bei mir waren diese Klammern gesetzt, also naja funzt halt immer noch nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
<p>Könnte es irgendwie daran liegen, dass die messages OnXXX nicht richtig übermittelt werden ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/484561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/484561</guid><dc:creator><![CDATA[Hever]]></dc:creator><pubDate>Fri, 19 Mar 2004 19:09:35 GMT</pubDate></item></channel></rss>