<?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[winsock]]></title><description><![CDATA[<p>Hallo ich hab mir mal den Server aus dem Winsock Tutorial hier runter geladen.<br />
<a href="http://www.c-worker.ch/tuts/wstut_op.php" rel="nofollow">http://www.c-worker.ch/tuts/wstut_op.php</a></p>
<p>Als ich den Compilieren wollte bekamm ich diese Fehlermeldungen hier <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Erzeugen<br />
[C++ Fehler] winsock2.h(109): E2238 Bezeichner 'fd_set' mehrfach deklariert<br />
[C++ Fehler] winsock.h(54): E2344 'fd_set' bereits deklariert<br />
[C++ Fehler] winsock2.h(112): E2146 Bezeichner zur Vervollständigung der Deklaration erforderlich<br />
[C++ Warnung] winsock2.h(144): W8017 Redefinition von 'FD_SET' ist nicht identisch<br />
[C++ Fehler] winsock2.h(153): E2238 Bezeichner 'timeval' mehrfach deklariert<br />
[C++ Fehler] winsock.h(97): E2344 'timeval' bereits deklariert<br />
[C++ Fehler] winsock2.h(209): E2238 Bezeichner 'hostent' mehrfach deklariert<br />
[C++ Fehler] winsock.h(153): E2344 'hostent' bereits deklariert<br />
[C++ Fehler] winsock2.h(222): E2238 Bezeichner 'netent' mehrfach deklariert<br />
[C++ Fehler] winsock.h(166): E2344 'netent' bereits deklariert<br />
[C++ Fehler] winsock2.h(229): E2238 Bezeichner 'servent' mehrfach deklariert<br />
[C++ Fehler] winsock.h(173): E2344 'servent' bereits deklariert<br />
[C++ Fehler] winsock2.h(241): E2238 Bezeichner 'protoent' mehrfach deklariert<br />
[C++ Fehler] winsock.h(185): E2344 'protoent' bereits deklariert<br />
[C++ Fehler] winsock2.h(327): E2238 Bezeichner 'in_addr' mehrfach deklariert<br />
[C++ Fehler] winsock.h(269): E2344 'in_addr' bereits deklariert<br />
[C++ Fehler] winsock2.h(385): E2238 Bezeichner 'sockaddr_in' mehrfach deklariert<br />
[C++ Fehler] winsock.h(319): E2344 'sockaddr_in' bereits deklariert<br />
[C++ Fehler] winsock2.h(395): E2238 Bezeichner 'WSAData' mehrfach deklariert<br />
[C++ Fehler] winsock.h(329): E2344 'WSAData' bereits deklariert<br />
[C++ Fehler] winsock2.h(411): E2146 Bezeichner zur Vervollständigung der Deklaration erforderlich<br />
[C++ Warnung] winsock2.h(455): W8017 Redefinition von 'SO_DONTLINGER' ist nicht identisch<br />
[C++ Warnung] winsock2.h(512): W8017 Redefinition von 'AF_IPX' ist nicht identisch<br />
[C++ Warnung] winsock2.h(540): W8017 Redefinition von 'AF_MAX' ist nicht identisch<br />
[C++ Fehler] winsock2.h(546): E2238 Bezeichner 'sockaddr' mehrfach deklariert<br />
[C++ Fehler] winsock.h(492): E2344 'sockaddr' bereits deklariert<br />
[C++ Fehler] winsock2.h(586): E2238 Bezeichner 'sockproto' mehrfach deklariert<br />
[C++ Fehler] winsock.h(501): E2344 'sockproto' bereits deklariert<br />
[C++ Fehler] winsock2.h(625): E2238 Bezeichner 'linger' mehrfach deklariert<br />
[C++ Fehler] winsock2.h(625): E2228 Zu viele Fehlermeldungen oder Warnungen</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#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';
    printf(&quot;Client sendet: %s\n&quot;,buf);
    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/201620/winsock</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 10:56:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201620.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Jan 2008 09:20:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to winsock on Wed, 02 Jan 2008 09:20:14 GMT]]></title><description><![CDATA[<p>Hallo ich hab mir mal den Server aus dem Winsock Tutorial hier runter geladen.<br />
<a href="http://www.c-worker.ch/tuts/wstut_op.php" rel="nofollow">http://www.c-worker.ch/tuts/wstut_op.php</a></p>
<p>Als ich den Compilieren wollte bekamm ich diese Fehlermeldungen hier <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Erzeugen<br />
[C++ Fehler] winsock2.h(109): E2238 Bezeichner 'fd_set' mehrfach deklariert<br />
[C++ Fehler] winsock.h(54): E2344 'fd_set' bereits deklariert<br />
[C++ Fehler] winsock2.h(112): E2146 Bezeichner zur Vervollständigung der Deklaration erforderlich<br />
[C++ Warnung] winsock2.h(144): W8017 Redefinition von 'FD_SET' ist nicht identisch<br />
[C++ Fehler] winsock2.h(153): E2238 Bezeichner 'timeval' mehrfach deklariert<br />
[C++ Fehler] winsock.h(97): E2344 'timeval' bereits deklariert<br />
[C++ Fehler] winsock2.h(209): E2238 Bezeichner 'hostent' mehrfach deklariert<br />
[C++ Fehler] winsock.h(153): E2344 'hostent' bereits deklariert<br />
[C++ Fehler] winsock2.h(222): E2238 Bezeichner 'netent' mehrfach deklariert<br />
[C++ Fehler] winsock.h(166): E2344 'netent' bereits deklariert<br />
[C++ Fehler] winsock2.h(229): E2238 Bezeichner 'servent' mehrfach deklariert<br />
[C++ Fehler] winsock.h(173): E2344 'servent' bereits deklariert<br />
[C++ Fehler] winsock2.h(241): E2238 Bezeichner 'protoent' mehrfach deklariert<br />
[C++ Fehler] winsock.h(185): E2344 'protoent' bereits deklariert<br />
[C++ Fehler] winsock2.h(327): E2238 Bezeichner 'in_addr' mehrfach deklariert<br />
[C++ Fehler] winsock.h(269): E2344 'in_addr' bereits deklariert<br />
[C++ Fehler] winsock2.h(385): E2238 Bezeichner 'sockaddr_in' mehrfach deklariert<br />
[C++ Fehler] winsock.h(319): E2344 'sockaddr_in' bereits deklariert<br />
[C++ Fehler] winsock2.h(395): E2238 Bezeichner 'WSAData' mehrfach deklariert<br />
[C++ Fehler] winsock.h(329): E2344 'WSAData' bereits deklariert<br />
[C++ Fehler] winsock2.h(411): E2146 Bezeichner zur Vervollständigung der Deklaration erforderlich<br />
[C++ Warnung] winsock2.h(455): W8017 Redefinition von 'SO_DONTLINGER' ist nicht identisch<br />
[C++ Warnung] winsock2.h(512): W8017 Redefinition von 'AF_IPX' ist nicht identisch<br />
[C++ Warnung] winsock2.h(540): W8017 Redefinition von 'AF_MAX' ist nicht identisch<br />
[C++ Fehler] winsock2.h(546): E2238 Bezeichner 'sockaddr' mehrfach deklariert<br />
[C++ Fehler] winsock.h(492): E2344 'sockaddr' bereits deklariert<br />
[C++ Fehler] winsock2.h(586): E2238 Bezeichner 'sockproto' mehrfach deklariert<br />
[C++ Fehler] winsock.h(501): E2344 'sockproto' bereits deklariert<br />
[C++ Fehler] winsock2.h(625): E2238 Bezeichner 'linger' mehrfach deklariert<br />
[C++ Fehler] winsock2.h(625): E2228 Zu viele Fehlermeldungen oder Warnungen</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#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';
    printf(&quot;Client sendet: %s\n&quot;,buf);
    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/1429129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429129</guid><dc:creator><![CDATA[derDa]]></dc:creator><pubDate>Wed, 02 Jan 2008 09:20:14 GMT</pubDate></item><item><title><![CDATA[Reply to winsock on Wed, 02 Jan 2008 10:02:04 GMT]]></title><description><![CDATA[<p>Hab den Fehler gefunden. Das</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
</code></pre>
<p>musste raus.</p>
<p>Aber wieso macht der das in das Tutorial wenn das doch damit nicht funktioniert O_o mhhm</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429141</guid><dc:creator><![CDATA[derDa]]></dc:creator><pubDate>Wed, 02 Jan 2008 10:02:04 GMT</pubDate></item><item><title><![CDATA[Reply to winsock on Wed, 02 Jan 2008 10:27:12 GMT]]></title><description><![CDATA[<p>windows.h immer nach die winsock.h Datei, dann geht das. <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429153</guid><dc:creator><![CDATA[gosha16]]></dc:creator><pubDate>Wed, 02 Jan 2008 10:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to winsock on Wed, 02 Jan 2008 10:52:26 GMT]]></title><description><![CDATA[<p>Jo geht auch thx :&gt;</p>
<p>Hab ein neues Problem^^</p>
<p>Ich hab den Server mal etwas verändert so das man z.b. vom Client Dos Befehle an den Server senden kann das funktioniert auch ganz gut.</p>
<p>Aber wenn ich im client z.b. eingeben mspaint dann wird mspaint auch gestartet<br />
aber wenn ich einen neuen Befehl an den Server senden will dann muss ich erst Paint wieder schließen kann man das irgedwie umgehen das ich auch wenn Paint geöffnet ist noch andere Befehle an den Server senden.</p>
<p>Hier ist der 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;
    }

    system(buf);
    printf(&quot;Client sendet: %s\n&quot;,buf );
    sprintf(buf2,&quot;Folgender Befehl wurde ausgefuehrt %s&quot;,buf );

    rc=send(connectedSocket,buf2,strlen(buf2),0);
  }

  closesocket(acceptSocket);
  closesocket(connectedSocket);
  WSACleanup();
  system(&quot;PAUSE&quot;);
  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/1429162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429162</guid><dc:creator><![CDATA[derDa]]></dc:creator><pubDate>Wed, 02 Jan 2008 10:52:26 GMT</pubDate></item><item><title><![CDATA[Reply to winsock on Wed, 02 Jan 2008 12:23:38 GMT]]></title><description><![CDATA[<p>Weiss den keiner wie das gehen könnte <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1429238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429238</guid><dc:creator><![CDATA[derDa]]></dc:creator><pubDate>Wed, 02 Jan 2008 12:23:38 GMT</pubDate></item><item><title><![CDATA[Reply to winsock on Wed, 02 Jan 2008 12:59:06 GMT]]></title><description><![CDATA[<p>z.B. <a href="http://207.46.199.254/en-us/library/ms682425.aspx" rel="nofollow">CreateProcess</a><br />
oder <a href="http://msdn2.microsoft.com/en-us/library/bb762153.aspx" rel="nofollow">ShellExecute</a></p>
<p>du solltest noch irgendein Zeichen als Kommando-Ende-Zeichen machen und zusehen das du das auch empfangen hast statt zu hoffen das recv() das komplette Kommando jeweils in einem Rutsch eingelesen hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429269</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Wed, 02 Jan 2008 12:59:06 GMT</pubDate></item></channel></rss>