<?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[Problem mit Endlosschleife in Klasse]]></title><description><![CDATA[<p>Ich versuche das gerade als Klasse zu implementieren. (Dass dieser Code zu einem großen Teil aus C-Code besteht, wird noch geändert). Wieso geht das Fenster sofort wieder zu? Die Endlosschleife scheint nicht zu funktionieren...</p>
<p><strong>HEADER:</strong></p>
<pre><code class="language-cpp">#ifndef _SERVER_
#define _SERVER_

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;winsock.h&gt;
using namespace std;

class Server
{
private:
	SOCKET s, c;
	int addr_len;
	struct sockaddr_in addr;
public:
	Server()
	{}; //Konstrukor
	~Server(){}; // Destruktor
	int SocketStart();

}; //SEMIKOLON NICHT VERGESSEN!!!

int Server::SocketStart()
{
    WSADATA wsa;
    if (WSAStartup(MAKEWORD(1, 1), &amp;wsa))
    {
        printf(&quot;WSAStartup() failed, %lu\n&quot;, (unsigned long)GetLastError());
        return EXIT_FAILURE;
    }
	return 0;
		//SOCKET ANLEGEN
	s = socket(PF_INET, SOCK_STREAM, 0);
	if (s == -1)
	{
	  perror(&quot;socket() failed&quot;);
	  return 1;
	}
		//CONNECTEN
	addr.sin_addr.s_addr = INADDR_ANY;
	addr.sin_port = htons(7000);
	addr.sin_family = AF_INET;

	//BINDEN
	if (bind(s, (struct sockaddr*) &amp;addr, sizeof(addr)) == -1)
	{
		perror(&quot;bind() failed&quot;);
		return 2;
	}

	//ZUHÖREN
	if (listen(s, 3) == -1)
	{
		perror(&quot;listen () failed&quot;);
		return 3;
	}

	//WARTEN
	for(;;)
    {
        addr_len = sizeof(addr);
        c = accept(s, (struct sockaddr*)&amp;addr, &amp;addr_len);
        if (c == -1)
        {
            perror(&quot;accept() failed&quot;);
            continue;
        }

        printf(&quot;Client from %s\n&quot;, inet_ntoa(addr.sin_addr));

        closesocket(c);
	}
	closesocket(s);
} 

#endif _SERVER_
</code></pre>
<p><strong>CPP Datei:</strong></p>
<pre><code class="language-cpp">#include &quot;Klasse.h&quot;
#define BUF_SIZ 4096

int main()
{
	Server a;
	a.SocketStart();
	char buffer[BUF_SIZ];

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/262425/problem-mit-endlosschleife-in-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 16:13:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262425.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 Mar 2010 18:36:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Endlosschleife in Klasse on Fri, 05 Mar 2010 18:36:27 GMT]]></title><description><![CDATA[<p>Ich versuche das gerade als Klasse zu implementieren. (Dass dieser Code zu einem großen Teil aus C-Code besteht, wird noch geändert). Wieso geht das Fenster sofort wieder zu? Die Endlosschleife scheint nicht zu funktionieren...</p>
<p><strong>HEADER:</strong></p>
<pre><code class="language-cpp">#ifndef _SERVER_
#define _SERVER_

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;winsock.h&gt;
using namespace std;

class Server
{
private:
	SOCKET s, c;
	int addr_len;
	struct sockaddr_in addr;
public:
	Server()
	{}; //Konstrukor
	~Server(){}; // Destruktor
	int SocketStart();

}; //SEMIKOLON NICHT VERGESSEN!!!

int Server::SocketStart()
{
    WSADATA wsa;
    if (WSAStartup(MAKEWORD(1, 1), &amp;wsa))
    {
        printf(&quot;WSAStartup() failed, %lu\n&quot;, (unsigned long)GetLastError());
        return EXIT_FAILURE;
    }
	return 0;
		//SOCKET ANLEGEN
	s = socket(PF_INET, SOCK_STREAM, 0);
	if (s == -1)
	{
	  perror(&quot;socket() failed&quot;);
	  return 1;
	}
		//CONNECTEN
	addr.sin_addr.s_addr = INADDR_ANY;
	addr.sin_port = htons(7000);
	addr.sin_family = AF_INET;

	//BINDEN
	if (bind(s, (struct sockaddr*) &amp;addr, sizeof(addr)) == -1)
	{
		perror(&quot;bind() failed&quot;);
		return 2;
	}

	//ZUHÖREN
	if (listen(s, 3) == -1)
	{
		perror(&quot;listen () failed&quot;);
		return 3;
	}

	//WARTEN
	for(;;)
    {
        addr_len = sizeof(addr);
        c = accept(s, (struct sockaddr*)&amp;addr, &amp;addr_len);
        if (c == -1)
        {
            perror(&quot;accept() failed&quot;);
            continue;
        }

        printf(&quot;Client from %s\n&quot;, inet_ntoa(addr.sin_addr));

        closesocket(c);
	}
	closesocket(s);
} 

#endif _SERVER_
</code></pre>
<p><strong>CPP Datei:</strong></p>
<pre><code class="language-cpp">#include &quot;Klasse.h&quot;
#define BUF_SIZ 4096

int main()
{
	Server a;
	a.SocketStart();
	char buffer[BUF_SIZ];

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1864896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864896</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Fri, 05 Mar 2010 18:36:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Endlosschleife in Klasse on Fri, 05 Mar 2010 19:19:04 GMT]]></title><description><![CDATA[<p>Guck mal Zeile 31 an...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864926</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 05 Mar 2010 19:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Endlosschleife in Klasse on Fri, 05 Mar 2010 19:22:27 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Guck mal Zeile 31 an...</p>
</blockquote>
<p>Gelöst, danke! Nächstes mal debugge ichs -.- versprochen....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864927</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Fri, 05 Mar 2010 19:22:27 GMT</pubDate></item></channel></rss>