<?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 Administartion]]></title><description><![CDATA[<p>Hallo ich versuche gerade einen Server aus einem Tutorial umzu schreiben. Also<br />
wenn man im Client z.b. shut eingibt dann soll der PC runtergefahren werden auf dem der Server läuft.</p>
<p>Aber irgendwie geht das nicht richtig so wie es soll....</p>
<p>Server Source Code:</p>
<pre><code class="language-cpp">#include &lt;winsock2.h&gt;
#include &lt;stdio.h&gt;

//Prototypen
int startWinsock(void);

int main()
{
  long rc;
  SOCKET acceptSocket;
  SOCKET connectedSocket;
  SOCKADDR_IN addr;
  char buf[256];
  char buf2[300];

  // Winsock starten
  rc=startWinsock();
  if(rc!=0)
  {
    printf(&quot;Fehler: startWinsock, fehler code: %d\n&quot;,rc);
    return 1;
  }
  else
  {
    printf(&quot;Winsock gestartet!\n&quot;);
  }

  // Socket erstellen
  acceptSocket=socket(AF_INET,SOCK_STREAM,0);
  if(acceptSocket==INVALID_SOCKET)
  {
    printf(&quot;Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Socket erstellt!\n&quot;);
  }

  // Socket binden
  memset(&amp;addr,0,sizeof(SOCKADDR_IN));
  addr.sin_family=AF_INET;
  addr.sin_port=htons(12345);
  addr.sin_addr.s_addr=ADDR_ANY;
  rc=bind(acceptSocket,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR_IN));
  if(rc==SOCKET_ERROR)
  {
    printf(&quot;Fehler: bind, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Socket an port 12345 gebunden\n&quot;);
  }

  // In den listen Modus
  rc=listen(acceptSocket,10);
  if(rc==SOCKET_ERROR)
  {
    printf(&quot;Fehler: listen, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;acceptSocket ist im listen Modus....\n&quot;);
  }

  // Verbindung annehmen
  connectedSocket=accept(acceptSocket,NULL,NULL);
   if(connectedSocket==INVALID_SOCKET)
  {
    printf(&quot;Fehler: accept, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Neue Verbindung wurde akzeptiert!\n&quot;);
  }

  // Daten austauschen
  while(rc!=SOCKET_ERROR)
  {
    rc=recv(connectedSocket,buf,256,0);
    if(rc==0)
    {
      printf(&quot;Server hat die Verbindung getrennt..\n&quot;);
      break;
    }
    if(rc==SOCKET_ERROR)
    {
      printf(&quot;Fehler: recv, fehler code: %d\n&quot;,WSAGetLastError());
      break;
    }
    buf[rc]='\0';

    if (buf2==&quot;shut&quot;) {
     system(&quot;start shutdown -s&quot;);
    }

    sprintf(buf2,&quot;Du mich auch %s&quot;,buf);
    rc=send(connectedSocket,buf2,strlen(buf2),0);
  }
  closesocket(acceptSocket);
  closesocket(connectedSocket);
  WSACleanup();
  return 0;
}

int startWinsock(void)
{
  WSADATA wsa;
  return WSAStartup(MAKEWORD(2,0),&amp;wsa);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/201157/server-administartion</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 08:29:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201157.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Dec 2007 15:07:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Server Administartion on Tue, 25 Dec 2007 15:07:25 GMT]]></title><description><![CDATA[<p>Hallo ich versuche gerade einen Server aus einem Tutorial umzu schreiben. Also<br />
wenn man im Client z.b. shut eingibt dann soll der PC runtergefahren werden auf dem der Server läuft.</p>
<p>Aber irgendwie geht das nicht richtig so wie es soll....</p>
<p>Server Source Code:</p>
<pre><code class="language-cpp">#include &lt;winsock2.h&gt;
#include &lt;stdio.h&gt;

//Prototypen
int startWinsock(void);

int main()
{
  long rc;
  SOCKET acceptSocket;
  SOCKET connectedSocket;
  SOCKADDR_IN addr;
  char buf[256];
  char buf2[300];

  // Winsock starten
  rc=startWinsock();
  if(rc!=0)
  {
    printf(&quot;Fehler: startWinsock, fehler code: %d\n&quot;,rc);
    return 1;
  }
  else
  {
    printf(&quot;Winsock gestartet!\n&quot;);
  }

  // Socket erstellen
  acceptSocket=socket(AF_INET,SOCK_STREAM,0);
  if(acceptSocket==INVALID_SOCKET)
  {
    printf(&quot;Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Socket erstellt!\n&quot;);
  }

  // Socket binden
  memset(&amp;addr,0,sizeof(SOCKADDR_IN));
  addr.sin_family=AF_INET;
  addr.sin_port=htons(12345);
  addr.sin_addr.s_addr=ADDR_ANY;
  rc=bind(acceptSocket,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR_IN));
  if(rc==SOCKET_ERROR)
  {
    printf(&quot;Fehler: bind, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Socket an port 12345 gebunden\n&quot;);
  }

  // In den listen Modus
  rc=listen(acceptSocket,10);
  if(rc==SOCKET_ERROR)
  {
    printf(&quot;Fehler: listen, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;acceptSocket ist im listen Modus....\n&quot;);
  }

  // Verbindung annehmen
  connectedSocket=accept(acceptSocket,NULL,NULL);
   if(connectedSocket==INVALID_SOCKET)
  {
    printf(&quot;Fehler: accept, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Neue Verbindung wurde akzeptiert!\n&quot;);
  }

  // Daten austauschen
  while(rc!=SOCKET_ERROR)
  {
    rc=recv(connectedSocket,buf,256,0);
    if(rc==0)
    {
      printf(&quot;Server hat die Verbindung getrennt..\n&quot;);
      break;
    }
    if(rc==SOCKET_ERROR)
    {
      printf(&quot;Fehler: recv, fehler code: %d\n&quot;,WSAGetLastError());
      break;
    }
    buf[rc]='\0';

    if (buf2==&quot;shut&quot;) {
     system(&quot;start shutdown -s&quot;);
    }

    sprintf(buf2,&quot;Du mich auch %s&quot;,buf);
    rc=send(connectedSocket,buf2,strlen(buf2),0);
  }
  closesocket(acceptSocket);
  closesocket(connectedSocket);
  WSACleanup();
  return 0;
}

int startWinsock(void)
{
  WSADATA wsa;
  return WSAStartup(MAKEWORD(2,0),&amp;wsa);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1425958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425958</guid><dc:creator><![CDATA[hans seuwen]]></dc:creator><pubDate>Tue, 25 Dec 2007 15:07:25 GMT</pubDate></item><item><title><![CDATA[Reply to Server Administartion on Tue, 25 Dec 2007 15:53:16 GMT]]></title><description><![CDATA[<blockquote>
<p>Aber irgendwie geht das nicht richtig so wie es soll....</p>
</blockquote>
<p>Sehr interessant, und was geht den genau nicht so wie es wie soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425973</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Tue, 25 Dec 2007 15:53:16 GMT</pubDate></item><item><title><![CDATA[Reply to Server Administartion on Tue, 25 Dec 2007 15:56:46 GMT]]></title><description><![CDATA[<p>Das Programm hat halt den Befehl erst gar nicht ausgeführt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425977</guid><dc:creator><![CDATA[hans seuwen]]></dc:creator><pubDate>Tue, 25 Dec 2007 15:56:46 GMT</pubDate></item><item><title><![CDATA[Reply to Server Administartion on Tue, 25 Dec 2007 16:11:58 GMT]]></title><description><![CDATA[<p>Hat denn da keiner eine ahnung wie das gehen könnte ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425981</guid><dc:creator><![CDATA[hans seuwen]]></dc:creator><pubDate>Tue, 25 Dec 2007 16:11:58 GMT</pubDate></item><item><title><![CDATA[Reply to Server Administartion on Tue, 25 Dec 2007 16:16:53 GMT]]></title><description><![CDATA[<p>Ich bin mir nicht sicher aber versuch doch mal</p>
<pre><code class="language-cpp">if (buf2==&quot;shut\0&quot;)
</code></pre>
<p>Dann müsste es vielleicht funktioneren</p>
<p>mfg Nanobot</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425984</guid><dc:creator><![CDATA[Nanobot]]></dc:creator><pubDate>Tue, 25 Dec 2007 16:16:53 GMT</pubDate></item></channel></rss>