<?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[Server Error: 10047]]></title><description><![CDATA[<p>Hallo, ich habe folgendes Programm im Rahmen eines Tutorials geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;
#include &lt;windows.h&gt;
#include &lt;winsock2.h&gt;
#include &lt;stdio.h&gt; 

using namespace std;

int startWinsock(void)
{
  WSADATA wsa;
  return WSAStartup(MAKEWORD(2,0),&amp;wsa);
} 

int main(int argc, char *argv[])
{

    long rc;

  SOCKET acceptSocket;

  SOCKET connectedSocket;

  SOCKADDR_IN addr;

  // Winsock starten

  rc=startWinsock();

  if(rc!=0)  {
    cout &lt;&lt;&quot;Fehler: startWinsock, fehler code: \n&quot; &lt;&lt; rc;
    return 1;
  }  else  {
    cout &lt;&lt; &quot;Winsock gestartet!\n&quot;;
  }

  // Socket erstellen

  acceptSocket=socket(AF_INET,SOCK_STREAM,0);

  if(acceptSocket==INVALID_SOCKET)
  {
    cout &lt;&lt;&quot;Fehler: Der Socket konnte nicht erstellt werden, fehler code: \n&quot; &lt;&lt; WSAGetLastError();
    return 1;
  }  else  {
    cout &lt;&lt; &quot;Socket erstellt!\n&quot;;
  }

  // Port zuweisen

  addr.sin_family=AF_INET;
  memset(&amp;addr,0,sizeof(SOCKADDR_IN)); 
  addr.sin_port = htons(12346);
  rc = bind(acceptSocket,(SOCKADDR*)&amp;addr, sizeof(SOCKADDR_IN));
  if(rc==SOCKET_ERROR) {
      cout &lt;&lt; &quot;Fehler: bind, fehlercode: \n&quot; &lt;&lt; WSAGetLastError();
      //return 1;
  } else {
      cout &lt;&lt; &quot;Socket an Port 12345 gebunden\n&quot;;
  }        

  // LISTENING

  rc = listen(acceptSocket, 10);

  if(rc==SOCKET_ERROR) {
      cout &lt;&lt; &quot;Fehler: listen, fehler code: \n&quot; &lt;&lt; WSAGetLastError();
      //return 1;
  } else {
      cout &lt;&lt; &quot;acceptSocket ist im listen Modus....\n&quot;;
  }

  connectedSocket = accept(acceptSocket, NULL, NULL);

  if(connectedSocket==INVALID_SOCKET) {
      cout &lt;&lt; &quot;Fehler: accept, fehler code: \n&quot; &lt;&lt; WSAGetLastError();
      //return 1;
  } else {
      cout &lt;&lt; &quot;Neue Verbindung wurde aktzeptiert!\n&quot;;
  }        

  system(&quot;PAUSE&quot;);	
  return 0;
}
</code></pre>
<p>Nun kommt folgende Ausgabe:</p>
<pre><code>Winsock gestartet!
Socket erstellt!
Fehler: bind, fehlercode: 10047
Fehler: listen, fehler code: 10022
Fehler: accept, fehler code: 10022
Press any key to continue . . .
</code></pre>
<p>Offensichtlich klappt bei der bind-Funktion die Portnummerzuweisung nicht.<br />
Bei google habe ich unter der Fehlernummer nachgeschaut und nur den Bezug auf einen Client gefunden. D.h. wenn der Fehler beim Client auftaucht, dann liegt das einfach nur daran, dass der entsprechende Port von keinem Server besetzt ist.<br />
Aber wie ist das beim Server?<br />
Und vor allem: Wie kann ich das kleine Problem beheben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128239/server-error-10047</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 15:34:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128239.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Dec 2005 18:10:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Server Error: 10047 on Thu, 01 Dec 2005 18:10:17 GMT]]></title><description><![CDATA[<p>Hallo, ich habe folgendes Programm im Rahmen eines Tutorials geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;
#include &lt;windows.h&gt;
#include &lt;winsock2.h&gt;
#include &lt;stdio.h&gt; 

using namespace std;

int startWinsock(void)
{
  WSADATA wsa;
  return WSAStartup(MAKEWORD(2,0),&amp;wsa);
} 

int main(int argc, char *argv[])
{

    long rc;

  SOCKET acceptSocket;

  SOCKET connectedSocket;

  SOCKADDR_IN addr;

  // Winsock starten

  rc=startWinsock();

  if(rc!=0)  {
    cout &lt;&lt;&quot;Fehler: startWinsock, fehler code: \n&quot; &lt;&lt; rc;
    return 1;
  }  else  {
    cout &lt;&lt; &quot;Winsock gestartet!\n&quot;;
  }

  // Socket erstellen

  acceptSocket=socket(AF_INET,SOCK_STREAM,0);

  if(acceptSocket==INVALID_SOCKET)
  {
    cout &lt;&lt;&quot;Fehler: Der Socket konnte nicht erstellt werden, fehler code: \n&quot; &lt;&lt; WSAGetLastError();
    return 1;
  }  else  {
    cout &lt;&lt; &quot;Socket erstellt!\n&quot;;
  }

  // Port zuweisen

  addr.sin_family=AF_INET;
  memset(&amp;addr,0,sizeof(SOCKADDR_IN)); 
  addr.sin_port = htons(12346);
  rc = bind(acceptSocket,(SOCKADDR*)&amp;addr, sizeof(SOCKADDR_IN));
  if(rc==SOCKET_ERROR) {
      cout &lt;&lt; &quot;Fehler: bind, fehlercode: \n&quot; &lt;&lt; WSAGetLastError();
      //return 1;
  } else {
      cout &lt;&lt; &quot;Socket an Port 12345 gebunden\n&quot;;
  }        

  // LISTENING

  rc = listen(acceptSocket, 10);

  if(rc==SOCKET_ERROR) {
      cout &lt;&lt; &quot;Fehler: listen, fehler code: \n&quot; &lt;&lt; WSAGetLastError();
      //return 1;
  } else {
      cout &lt;&lt; &quot;acceptSocket ist im listen Modus....\n&quot;;
  }

  connectedSocket = accept(acceptSocket, NULL, NULL);

  if(connectedSocket==INVALID_SOCKET) {
      cout &lt;&lt; &quot;Fehler: accept, fehler code: \n&quot; &lt;&lt; WSAGetLastError();
      //return 1;
  } else {
      cout &lt;&lt; &quot;Neue Verbindung wurde aktzeptiert!\n&quot;;
  }        

  system(&quot;PAUSE&quot;);	
  return 0;
}
</code></pre>
<p>Nun kommt folgende Ausgabe:</p>
<pre><code>Winsock gestartet!
Socket erstellt!
Fehler: bind, fehlercode: 10047
Fehler: listen, fehler code: 10022
Fehler: accept, fehler code: 10022
Press any key to continue . . .
</code></pre>
<p>Offensichtlich klappt bei der bind-Funktion die Portnummerzuweisung nicht.<br />
Bei google habe ich unter der Fehlernummer nachgeschaut und nur den Bezug auf einen Client gefunden. D.h. wenn der Fehler beim Client auftaucht, dann liegt das einfach nur daran, dass der entsprechende Port von keinem Server besetzt ist.<br />
Aber wie ist das beim Server?<br />
Und vor allem: Wie kann ich das kleine Problem beheben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931582</guid><dc:creator><![CDATA[Rudi Ratlos]]></dc:creator><pubDate>Thu, 01 Dec 2005 18:10:17 GMT</pubDate></item><item><title><![CDATA[Reply to Server Error: 10047 on Thu, 01 Dec 2005 18:25:34 GMT]]></title><description><![CDATA[<p>Benutz bei der socket-Funktion statt AF_INET PF_INET. Das Argument spezifiziert die zu verwendende Protokollfamilie.<br />
Fehlermeldung 10047 bedeutet: &quot;Address family not supported by protocol family.&quot;<br />
Eine Beschreibung der Fehlercodes findest du hier:<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/windows_sockets_error_codes_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/windows_sockets_error_codes_2.asp</a><br />
socket-Bechreibung:<br />
<a href="http://www.zotteljedi.de/doc/socket-tipps/socket.html" rel="nofollow">http://www.zotteljedi.de/doc/socket-tipps/socket.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/931595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931595</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Thu, 01 Dec 2005 18:25:34 GMT</pubDate></item><item><title><![CDATA[Reply to Server Error: 10047 on Thu, 01 Dec 2005 18:54:23 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Adressen und die Hilfe.<br />
Aber leider klappt es trotzdem nicht. Ich habe versucht mit der Familie AF_INET die Portnummer zu wechseln und außerdem habe ich versucht(wie du es mir gesagt hast) PF_INET zu verwenden. Beides bringt leider den vorherigen Effekt wieder...<br />
Könnte es auch sein, dass der Fehler nicht am Code selbst liegt, sondern an meinem Rechner?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931641</guid><dc:creator><![CDATA[Rudi Ratlos]]></dc:creator><pubDate>Thu, 01 Dec 2005 18:54:23 GMT</pubDate></item><item><title><![CDATA[Reply to Server Error: 10047 on Thu, 01 Dec 2005 19:12:32 GMT]]></title><description><![CDATA[<p>Solltest dennoch die PF dort nutzen, da dort die Protokollfamilie und nicht die Adressfamilie festgelegt wird. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Füg mal vor bind dies ein:<br />
addr.sin_addr.s_addr = INADDR_ANY;<br />
Damit legst du fest das der Server über alle Netze Verbidnungen aufnehmen soll.</p>
<p>Mehr fällt mir jetzt auch nicht auf, außer beim accept, das kenn ich nur so:<br />
int len=0;<br />
connectedSocket = accept(acceptSocket, (SOCKADDR *)&amp;addr, &amp;len);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931663</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Thu, 01 Dec 2005 19:12:32 GMT</pubDate></item><item><title><![CDATA[Reply to Server Error: 10047 on Thu, 01 Dec 2005 19:28:14 GMT]]></title><description><![CDATA[<p>Hm... Eigenartig, trotz der guten Tipps und der Hilfe klappts immernoch nicht.<br />
Ich werd das ganze mal auf einem anderem rechner probieren. Vielleicht liegts dann wirklich an meinem(ich verwende den Dev-C++) Compiler, aber ich glaub das hat damit nix zu tun?</p>
<p>Jedenfalls vielen Dank für deine Hilfeleistung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931679</guid><dc:creator><![CDATA[Rudi Ratlos]]></dc:creator><pubDate>Thu, 01 Dec 2005 19:28:14 GMT</pubDate></item><item><title><![CDATA[Reply to Server Error: 10047 on Fri, 02 Dec 2005 11:09:59 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=403" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/932135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932135</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Fri, 02 Dec 2005 11:09:59 GMT</pubDate></item><item><title><![CDATA[Reply to Server Error: 10047 on Fri, 02 Dec 2005 11:35:49 GMT]]></title><description><![CDATA[<p>ändere das hier mal</p>
<pre><code class="language-cpp">// Port zuweisen 
addr.sin_family=AF_INET;
memset(&amp;addr,0,sizeof(SOCKADDR_IN)); // &lt;-- diese Zeile vor die dadrüber setzen
addr.sin_port = htons(12346);
</code></pre>
<pre><code class="language-cpp">// Port zuweisen 
memset(&amp;addr,0,sizeof(SOCKADDR_IN));
addr.sin_family=AF_INET;
addr.sin_port = htons(12346);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/932167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932167</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Fri, 02 Dec 2005 11:35:49 GMT</pubDate></item></channel></rss>