<?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[Frage zu Server [gelöst]]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;

int main()
{
	    /* initialize windows sockets */
    WSADATA wsa;
    if (WSAStartup(MAKEWORD(1, 1), &amp;wsa))
    {
        cout &lt;&lt; &quot;WSAStartup() failed: &quot; &lt;&lt; (unsigned long)GetLastError() &lt;&lt; endl;
        return EXIT_FAILURE;
    }
	SOCKET s;
	s = socket(PF_INET, SOCK_STREAM, 0);
	if (s == -1)
	{
		cout &lt;&lt; &quot;socket() failed&quot; &lt;&lt; endl;
		return 1;
	}
	struct sockaddr_in addr;

	addr.sin_addr.s_addr = inet_addr(INADDR_ANY);
	addr.sin_port = htons(1234);
	addr.sin_family = AF_INET;

	if (bind(s, (struct sockaddr*) &amp;addr, sizeof(addr)) == -1)
	{
		cerr &lt;&lt; &quot;bind() failed&quot; &lt;&lt; endl;
		return 2;
	}
	if (listen(s, 3) == -1)
	{
		cerr &lt;&lt; &quot;listen () failed&quot; &lt;&lt; endl;
		return 3;
	}
	struct sockaddr_in cli;
socklen_t cli_size;

cli_size = sizeof(cli);
if ((c = accept(s, (struct sockaddr*) &amp;cli, &amp;cli_size)) == -1)
{

    cerr &lt;&lt; &quot;accept() failed&quot; &lt;&lt; endl;
    return 4;
}
closesocket(s);

}
</code></pre>
<p>Das soll ein Server sein. Er kompiliert aber nicht. Warum?</p>
<p><strong>Fehlermeldungen:</strong></p>
<pre><code>error C2065: 'socklen_t': nichtdeklarierter Bezeichner
error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cli_size'
error C2065: 'cli_size': nichtdeklarierter Bezeichner
error C2065: 'cli_size': nichtdeklarierter Bezeichner
error C2065: 'c': nichtdeklarierter Bezeichner
error C2065: 'cli_size': nichtdeklarierter Bezeichner
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/246283/frage-zu-server-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 04:35:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246283.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Jul 2009 17:03:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Server [gelöst] on Sun, 26 Jul 2009 23:54:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;

int main()
{
	    /* initialize windows sockets */
    WSADATA wsa;
    if (WSAStartup(MAKEWORD(1, 1), &amp;wsa))
    {
        cout &lt;&lt; &quot;WSAStartup() failed: &quot; &lt;&lt; (unsigned long)GetLastError() &lt;&lt; endl;
        return EXIT_FAILURE;
    }
	SOCKET s;
	s = socket(PF_INET, SOCK_STREAM, 0);
	if (s == -1)
	{
		cout &lt;&lt; &quot;socket() failed&quot; &lt;&lt; endl;
		return 1;
	}
	struct sockaddr_in addr;

	addr.sin_addr.s_addr = inet_addr(INADDR_ANY);
	addr.sin_port = htons(1234);
	addr.sin_family = AF_INET;

	if (bind(s, (struct sockaddr*) &amp;addr, sizeof(addr)) == -1)
	{
		cerr &lt;&lt; &quot;bind() failed&quot; &lt;&lt; endl;
		return 2;
	}
	if (listen(s, 3) == -1)
	{
		cerr &lt;&lt; &quot;listen () failed&quot; &lt;&lt; endl;
		return 3;
	}
	struct sockaddr_in cli;
socklen_t cli_size;

cli_size = sizeof(cli);
if ((c = accept(s, (struct sockaddr*) &amp;cli, &amp;cli_size)) == -1)
{

    cerr &lt;&lt; &quot;accept() failed&quot; &lt;&lt; endl;
    return 4;
}
closesocket(s);

}
</code></pre>
<p>Das soll ein Server sein. Er kompiliert aber nicht. Warum?</p>
<p><strong>Fehlermeldungen:</strong></p>
<pre><code>error C2065: 'socklen_t': nichtdeklarierter Bezeichner
error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cli_size'
error C2065: 'cli_size': nichtdeklarierter Bezeichner
error C2065: 'cli_size': nichtdeklarierter Bezeichner
error C2065: 'c': nichtdeklarierter Bezeichner
error C2065: 'cli_size': nichtdeklarierter Bezeichner
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1749522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749522</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Sun, 26 Jul 2009 23:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Server [gelöst] on Sat, 25 Jul 2009 17:22:31 GMT]]></title><description><![CDATA[<p>hast du dem Programm auch 2 Argumente übergeben? Du solltest auf jeden Fall noch eine Abfrage einbauen, ob argc auch groß genug ist.<br />
Wenn das nicht hilft zerleg die Zeile mal in Einzeanweisungen und schau wo es dann hakt:</p>
<pre><code class="language-cpp">char const* arg2 = argv[2];
int port = atoi(arg2);
addr.sin_port = htons(port);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1749532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749532</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 25 Jul 2009 17:22:31 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Server [gelöst] on Sat, 25 Jul 2009 18:04:34 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>hast du dem Programm auch 2 Argumente übergeben? Du solltest auf jeden Fall noch eine Abfrage einbauen, ob argc auch groß genug ist.<br />
Wenn das nicht hilft zerleg die Zeile mal in Einzeanweisungen und schau wo es dann hakt:</p>
<pre><code class="language-cpp">char const* arg2 = argv[2];
int port = atoi(arg2);
addr.sin_port = htons(port);
</code></pre>
</blockquote>
<p>Hab' die Lösung, danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749557</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Sat, 25 Jul 2009 18:04:34 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Server [gelöst] on Sun, 26 Jul 2009 14:36:36 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749567</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Sun, 26 Jul 2009 14:36:36 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Server [gelöst] on Sat, 25 Jul 2009 18:45:07 GMT]]></title><description><![CDATA[<p>skullyan schrieb:</p>
<blockquote>
<p>Jetzt aber eine andere Frage:</p>
<p>Angenommen ich möchte, dass der Client versucht, eine Verbindung zum Server aufzubauen. Dann müsste er es ja immer wieder versuchen, wenn der Server vielleicht mal temporär nicht zu erreichen ist. Ich dachte da an eine for-Schleife, aber wie könnte man das am besten lösen?</p>
</blockquote>
<p>Unter anderem versucht connect unter Window selber (sehr) häufig erneut zu verbinden bevor es aufhört. Du könntest natürlich eine while schleife benutzen, um so lange zu versuchen eine Verbindung aufzubauen bis es geklappt hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749573</guid><dc:creator><![CDATA[BBB]]></dc:creator><pubDate>Sat, 25 Jul 2009 18:45:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Server [gelöst] on Sun, 26 Jul 2009 14:36:16 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749656</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Sun, 26 Jul 2009 14:36:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Server [gelöst] on Sun, 26 Jul 2009 14:35:16 GMT]]></title><description><![CDATA[<p><code>socklen_t</code> wird wohl irgendwie nicht erkannt, oder?</p>
<p>Naja, ich wüsste jetzt nicht, wie ich das lösen soll.</p>
<p>PS.: Ich wollte kein neues Thema anfangen, daher habe ich das überschrieben. Ursprünglich war dieser Thread ein Thread über einen Client.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749827</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Sun, 26 Jul 2009 14:35:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Server [gelöst] on Sun, 26 Jul 2009 15:07:20 GMT]]></title><description><![CDATA[<p>skullyan schrieb:</p>
<blockquote>
<p><code>socklen_t</code> wird wohl irgendwie nicht erkannt, oder?</p>
<p>Naja, ich wüsste jetzt nicht, wie ich das lösen soll.</p>
<p>PS.: Ich wollte kein neues Thema anfangen, daher habe ich das überschrieben. Ursprünglich war dieser Thread ein Thread über einen Client.</p>
</blockquote>
<p>Schreibe einfach:</p>
<pre><code class="language-cpp">int cli_size;
</code></pre>
<p>anstelle von</p>
<pre><code class="language-cpp">socklen_t cli_size;
</code></pre>
<p>Simon</p>
<p><strong>edit:</strong><br />
Guck in der Doku:<br />
<a href="http://msdn.microsoft.com/en-us/library/ms737526(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms737526(VS.85).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749848</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sun, 26 Jul 2009 15:07:20 GMT</pubDate></item></channel></rss>