<?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 versuche gerade bei meinem Winsock Server Befehle einzustellen:</p>
<pre><code class="language-cpp">while(rc!=SOCKET_ERROR)
  {

                       send(client,buf2,strlen(buf2),0);
                       rc=recv(client,buf,256,0);

				if(rc==0)
				{
					std::cout&lt;&lt;&quot;Server hat die Verbindung getrennt..\n&quot;;
					system(&quot;PAUSE&quot;);
					return 0;
				 }

			if(rc==SOCKET_ERROR)
		        {
			  std::cout&lt;&lt;&quot;Fehler: recv, fehler code: &quot;&lt;&lt;WSAGetLastError();
			  break;
		       	}

                buf[rc]='\0';

                     cout&lt;&lt;&quot;Clien sendet\n&quot;&lt;&lt;buf;

                     if (buf==&quot;1&quot;)
                     {
                     cout&lt;&lt;&quot;Befehl eingeben: &quot;;
                     cin&gt;&gt;command;
                     }

  }
</code></pre>
<p>Aber wenn ich beim client die 1 drücke dann zeigt geht der Server einfach nicht in diese if abfrage</p>
<pre><code class="language-cpp">if (buf==&quot;1&quot;)
                     {
                     cout&lt;&lt;&quot;Befehl eingeben: &quot;;
                     cin&gt;&gt;command;
                     }
</code></pre>
<p>Was ist denn da falsch ?</p>
<p>Kompletter Client:</p>
<pre><code class="language-cpp">//Client

#include &lt;windows.h&gt; //Required for socket init
#include &lt;iostream&gt;
using namespace std;

//Client

int main()

{

char buf2[256];

string ip;
long rc;
char buf[256];
int nret;

SOCKET kSock;

WSAData wsdata; 
WORD wsver=MAKEWORD(2, 0); //Winsock version 2.0

nret=WSAStartup(wsver, &amp;wsdata); //Pass version 2.0 and pointer to implement

		if(nret != 0)
		{ //Init failed
		/*A successful return value should be 0 */
		std::cout&lt;&lt;&quot;Startup failed, error code: &quot;&lt;&lt;WSAGetLastError(); //Returns error code
		WSACleanup(); //Cleanup Winsock library
		return -1;
		}

std::cout&lt;&lt;&quot;Init success\n&quot;;
	 kSock=socket(AF_INET, SOCK_STREAM, 0);

		if(kSock == INVALID_SOCKET)
		{
		std::cout&lt;&lt;&quot;Socket init failed&quot;;
		return -1;
		}

std::cout&lt;&lt;&quot;Socket initialized\n&quot;;

sockaddr_in sin;
sin.sin_port=htons(12345); //Connect to port 12345
sin.sin_addr.s_addr=inet_addr(&quot;127.0.0.1&quot;); //Connect to localhost
sin.sin_family=AF_INET;

	 rc = connect(kSock,(sockaddr*)&amp;sin, sizeof(sin));

	   if(rc==SOCKET_ERROR)
			{ //Check the condition
			std::cout&lt;&lt;&quot;Connect failed, error: &quot;&lt;&lt;WSAGetLastError(); //Returns error code
			WSACleanup(); //Cleanup the library
			return -1;
			}

	else
	{
	std::cout&lt;&lt;&quot;Connection successful!\n&quot;;
	}

 while(rc!=SOCKET_ERROR)    //wenn kein error, hier handelt es sich um eine endlosschleife dies erkennt man an dem while
  {
   std::cout&lt;&lt;&quot;\nZeichenfolge eingeben [max 256]: &quot;;
   cin&gt;&gt;buf;
   send(kSock,buf,strlen(buf),0);

   recv(kSock, buf2, strlen(buf2), 0);
   cout&lt;&lt;&quot;Server Antwortet: &quot;&lt;&lt;buf2;

   }

	rc=recv(kSock,buf,256,0);
	if(rc==0)
        {
	  cout&lt;&lt;&quot;Server hat die Verbindung getrennt..\n&quot;;
	  system(&quot;PAUSE&quot;);
	  return 0;
	}

    if(rc==SOCKET_ERROR)
    {
	  cout&lt;&lt;&quot;Fehler: recv, fehler code: &quot;&lt;&lt;WSAGetLastError();
	 system(&quot;PAUSE&quot;);
	  return 0;
	}

           buf[rc]='\0';

system(&quot;PAUSE&quot;);

closesocket(kSock);
return 0;
}
</code></pre>
<p>Kompletter Server</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt; //Required for socket init
#include &lt;iostream&gt;
using namespace std;

//server
int main()
{

string command;

char buf2[]=&quot;test&quot;;
long rc;
SOCKET kSock;
SOCKET client;
int len;

char buf[256];

WSAData wsdata; //Declare WSAData
WORD wsver=MAKEWORD(2, 0); //We want Winsock 2.0
int nret=WSAStartup(wsver, &amp;wsdata); //Pass version 2.0 and pointer to implement

		if(nret != 0)
		{ //Init failed
		/*A successful return value should be 0 */
		std::cout&lt;&lt;&quot;Startup failed, error code: &quot;&lt;&lt;WSAGetLastError(); //Returns error code
		WSACleanup(); //Cleanup Winsock library
		return -1;
		}

std::cout&lt;&lt;&quot;Init success\n&quot;;
kSock=socket(AF_INET, SOCK_STREAM, 0);

		if(kSock == INVALID_SOCKET)
		{
		std::cout&lt;&lt;&quot;Socket init failed&quot;;
		return -1;
		}

std::cout&lt;&lt;&quot;Socket initialized\n&quot;;
sockaddr_in sin;
sin.sin_port=htons(12345);
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_family=AF_INET;

		if(bind(kSock,(sockaddr*)&amp;sin, sizeof(sin)) == SOCKET_ERROR)
		{
		std::cout&lt;&lt;&quot;Failed to bind\n&quot;;
		WSACleanup(); //Cleanup Winsock library
		return -1;
		}

std::cout&lt;&lt;&quot;Bind successful!\n&quot;;

  rc=listen(kSock,10);

  if(rc==SOCKET_ERROR)
  {
   std::cout&lt;&lt;&quot;Error &quot;&lt;&lt;GetLastError();
	system(&quot;PAUSE&quot;);
	return 0;
  }

  else
  {
    cout&lt;&lt;&quot;acceptSocket ist im listen Modus....\n&quot;;
  }

	// Verbindung annehmen
	 client=accept(kSock,NULL,NULL);

	if(client==INVALID_SOCKET)
        {
	std::cout&lt;&lt;&quot;Fehler: accept, fehler code: &lt;&lt;&quot;&lt;&lt;WSAGetLastError();
	return 1;
	}

	 std::cout&lt;&lt;&quot;Neue Verbindung wurde akzeptiert!\n&quot;;

   // Daten austauschen
  while(rc!=SOCKET_ERROR)
  {

                       send(client,buf2,strlen(buf2),0);
                       rc=recv(client,buf,256,0);

				if(rc==0)
				{
					std::cout&lt;&lt;&quot;Server hat die Verbindung getrennt..\n&quot;;
					system(&quot;PAUSE&quot;);
					return 0;
				 }

			if(rc==SOCKET_ERROR)
		        {
			  std::cout&lt;&lt;&quot;Fehler: recv, fehler code: &quot;&lt;&lt;WSAGetLastError();
			  break;
		       	}

                buf[rc]='\0';

                     cout&lt;&lt;&quot;Clien sendet\n&quot;&lt;&lt;buf;

                     if (buf==&quot;1&quot;)
                     {
                     cout&lt;&lt;&quot;Befehl eingeben: &quot;;
                     cin&gt;&gt;command;
                     }

  }

system(&quot;PAUSE&quot;);

closesocket(client); //Close both socket handles
closesocket(kSock);
WSACleanup();
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/217108/winsock</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 21:06:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/217108.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Jul 2008 07:31:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 07:31:49 GMT]]></title><description><![CDATA[<p>Hallo ich versuche gerade bei meinem Winsock Server Befehle einzustellen:</p>
<pre><code class="language-cpp">while(rc!=SOCKET_ERROR)
  {

                       send(client,buf2,strlen(buf2),0);
                       rc=recv(client,buf,256,0);

				if(rc==0)
				{
					std::cout&lt;&lt;&quot;Server hat die Verbindung getrennt..\n&quot;;
					system(&quot;PAUSE&quot;);
					return 0;
				 }

			if(rc==SOCKET_ERROR)
		        {
			  std::cout&lt;&lt;&quot;Fehler: recv, fehler code: &quot;&lt;&lt;WSAGetLastError();
			  break;
		       	}

                buf[rc]='\0';

                     cout&lt;&lt;&quot;Clien sendet\n&quot;&lt;&lt;buf;

                     if (buf==&quot;1&quot;)
                     {
                     cout&lt;&lt;&quot;Befehl eingeben: &quot;;
                     cin&gt;&gt;command;
                     }

  }
</code></pre>
<p>Aber wenn ich beim client die 1 drücke dann zeigt geht der Server einfach nicht in diese if abfrage</p>
<pre><code class="language-cpp">if (buf==&quot;1&quot;)
                     {
                     cout&lt;&lt;&quot;Befehl eingeben: &quot;;
                     cin&gt;&gt;command;
                     }
</code></pre>
<p>Was ist denn da falsch ?</p>
<p>Kompletter Client:</p>
<pre><code class="language-cpp">//Client

#include &lt;windows.h&gt; //Required for socket init
#include &lt;iostream&gt;
using namespace std;

//Client

int main()

{

char buf2[256];

string ip;
long rc;
char buf[256];
int nret;

SOCKET kSock;

WSAData wsdata; 
WORD wsver=MAKEWORD(2, 0); //Winsock version 2.0

nret=WSAStartup(wsver, &amp;wsdata); //Pass version 2.0 and pointer to implement

		if(nret != 0)
		{ //Init failed
		/*A successful return value should be 0 */
		std::cout&lt;&lt;&quot;Startup failed, error code: &quot;&lt;&lt;WSAGetLastError(); //Returns error code
		WSACleanup(); //Cleanup Winsock library
		return -1;
		}

std::cout&lt;&lt;&quot;Init success\n&quot;;
	 kSock=socket(AF_INET, SOCK_STREAM, 0);

		if(kSock == INVALID_SOCKET)
		{
		std::cout&lt;&lt;&quot;Socket init failed&quot;;
		return -1;
		}

std::cout&lt;&lt;&quot;Socket initialized\n&quot;;

sockaddr_in sin;
sin.sin_port=htons(12345); //Connect to port 12345
sin.sin_addr.s_addr=inet_addr(&quot;127.0.0.1&quot;); //Connect to localhost
sin.sin_family=AF_INET;

	 rc = connect(kSock,(sockaddr*)&amp;sin, sizeof(sin));

	   if(rc==SOCKET_ERROR)
			{ //Check the condition
			std::cout&lt;&lt;&quot;Connect failed, error: &quot;&lt;&lt;WSAGetLastError(); //Returns error code
			WSACleanup(); //Cleanup the library
			return -1;
			}

	else
	{
	std::cout&lt;&lt;&quot;Connection successful!\n&quot;;
	}

 while(rc!=SOCKET_ERROR)    //wenn kein error, hier handelt es sich um eine endlosschleife dies erkennt man an dem while
  {
   std::cout&lt;&lt;&quot;\nZeichenfolge eingeben [max 256]: &quot;;
   cin&gt;&gt;buf;
   send(kSock,buf,strlen(buf),0);

   recv(kSock, buf2, strlen(buf2), 0);
   cout&lt;&lt;&quot;Server Antwortet: &quot;&lt;&lt;buf2;

   }

	rc=recv(kSock,buf,256,0);
	if(rc==0)
        {
	  cout&lt;&lt;&quot;Server hat die Verbindung getrennt..\n&quot;;
	  system(&quot;PAUSE&quot;);
	  return 0;
	}

    if(rc==SOCKET_ERROR)
    {
	  cout&lt;&lt;&quot;Fehler: recv, fehler code: &quot;&lt;&lt;WSAGetLastError();
	 system(&quot;PAUSE&quot;);
	  return 0;
	}

           buf[rc]='\0';

system(&quot;PAUSE&quot;);

closesocket(kSock);
return 0;
}
</code></pre>
<p>Kompletter Server</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt; //Required for socket init
#include &lt;iostream&gt;
using namespace std;

//server
int main()
{

string command;

char buf2[]=&quot;test&quot;;
long rc;
SOCKET kSock;
SOCKET client;
int len;

char buf[256];

WSAData wsdata; //Declare WSAData
WORD wsver=MAKEWORD(2, 0); //We want Winsock 2.0
int nret=WSAStartup(wsver, &amp;wsdata); //Pass version 2.0 and pointer to implement

		if(nret != 0)
		{ //Init failed
		/*A successful return value should be 0 */
		std::cout&lt;&lt;&quot;Startup failed, error code: &quot;&lt;&lt;WSAGetLastError(); //Returns error code
		WSACleanup(); //Cleanup Winsock library
		return -1;
		}

std::cout&lt;&lt;&quot;Init success\n&quot;;
kSock=socket(AF_INET, SOCK_STREAM, 0);

		if(kSock == INVALID_SOCKET)
		{
		std::cout&lt;&lt;&quot;Socket init failed&quot;;
		return -1;
		}

std::cout&lt;&lt;&quot;Socket initialized\n&quot;;
sockaddr_in sin;
sin.sin_port=htons(12345);
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_family=AF_INET;

		if(bind(kSock,(sockaddr*)&amp;sin, sizeof(sin)) == SOCKET_ERROR)
		{
		std::cout&lt;&lt;&quot;Failed to bind\n&quot;;
		WSACleanup(); //Cleanup Winsock library
		return -1;
		}

std::cout&lt;&lt;&quot;Bind successful!\n&quot;;

  rc=listen(kSock,10);

  if(rc==SOCKET_ERROR)
  {
   std::cout&lt;&lt;&quot;Error &quot;&lt;&lt;GetLastError();
	system(&quot;PAUSE&quot;);
	return 0;
  }

  else
  {
    cout&lt;&lt;&quot;acceptSocket ist im listen Modus....\n&quot;;
  }

	// Verbindung annehmen
	 client=accept(kSock,NULL,NULL);

	if(client==INVALID_SOCKET)
        {
	std::cout&lt;&lt;&quot;Fehler: accept, fehler code: &lt;&lt;&quot;&lt;&lt;WSAGetLastError();
	return 1;
	}

	 std::cout&lt;&lt;&quot;Neue Verbindung wurde akzeptiert!\n&quot;;

   // Daten austauschen
  while(rc!=SOCKET_ERROR)
  {

                       send(client,buf2,strlen(buf2),0);
                       rc=recv(client,buf,256,0);

				if(rc==0)
				{
					std::cout&lt;&lt;&quot;Server hat die Verbindung getrennt..\n&quot;;
					system(&quot;PAUSE&quot;);
					return 0;
				 }

			if(rc==SOCKET_ERROR)
		        {
			  std::cout&lt;&lt;&quot;Fehler: recv, fehler code: &quot;&lt;&lt;WSAGetLastError();
			  break;
		       	}

                buf[rc]='\0';

                     cout&lt;&lt;&quot;Clien sendet\n&quot;&lt;&lt;buf;

                     if (buf==&quot;1&quot;)
                     {
                     cout&lt;&lt;&quot;Befehl eingeben: &quot;;
                     cin&gt;&gt;command;
                     }

  }

system(&quot;PAUSE&quot;);

closesocket(client); //Close both socket handles
closesocket(kSock);
WSACleanup();
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1540201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540201</guid><dc:creator><![CDATA[roflcopter]]></dc:creator><pubDate>Thu, 03 Jul 2008 07:31:49 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 07:47:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe jetzt nicht den ganzen Code betrachtet, aber das hier:</p>
<pre><code class="language-cpp">if (buf==&quot;1&quot;)
</code></pre>
<p>tut nicht was es soll. <em>buf</em> ist doch ein Zeiger, du willst doch nicht prüfen, ob der Zeiger den gleichen Wert hat wie der Zeiger, der auf die Zeichenkette &quot;1&quot; verweist...Also alles klar, hoffe ich... <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>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540218</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Thu, 03 Jul 2008 07:47:07 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 07:59:56 GMT]]></title><description><![CDATA[<p>Probe-Nutzer schrieb:</p>
<blockquote>
<p>ich habe jetzt nicht den ganzen Code betrachtet, aber das hier:</p>
<pre><code class="language-cpp">if (buf==&quot;1&quot;)
</code></pre>
<p>tut nicht was es soll.</p>
</blockquote>
<p>versuch doch mal: <code>if (*buf == '1')</code><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540225</guid><dc:creator><![CDATA[fricky]]></dc:creator><pubDate>Thu, 03 Jul 2008 07:59:56 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 08:05:33 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<blockquote>
<p>versuch doch mal: if (*buf == '1')</p>
</blockquote>
<p>Du Lerneffekt-Zerstörer... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540230</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Thu, 03 Jul 2008 08:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 08:46:01 GMT]]></title><description><![CDATA[<p>Wieso ist buf ein Zeiger buf wurde doch gar nicht als Zeiger Initaliert und es Zeigt auch nichts auf buf</p>
<p>Wie kann man dort erkennen das buf ein Zeiger ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540237</guid><dc:creator><![CDATA[roflcopter]]></dc:creator><pubDate>Thu, 03 Jul 2008 08:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 08:55:21 GMT]]></title><description><![CDATA[<p>Arrays sind Zeiger in disguise.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540241</guid><dc:creator><![CDATA[winrock]]></dc:creator><pubDate>Thu, 03 Jul 2008 08:55:21 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 08:58:52 GMT]]></title><description><![CDATA[<p>mhhm stimmt da war mal irgendwas. ^^ ty</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540245</guid><dc:creator><![CDATA[roflcopter]]></dc:creator><pubDate>Thu, 03 Jul 2008 08:58:52 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 09:15:32 GMT]]></title><description><![CDATA[<p>Kennt wer den C++ Befehl für gets();</p>
<p>Weil ich kenn den nur für C<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdio/gets.html" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstdio/gets.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540255</guid><dc:creator><![CDATA[roflcopter]]></dc:creator><pubDate>Thu, 03 Jul 2008 09:15:32 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 13:57:24 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/iostream/cin.html" rel="nofollow">http://www.cplusplus.com/reference/iostream/cin.html</a></p>
<pre><code class="language-cpp">#include &lt;string&gt;
...
std::string str;

std::cin &gt;&gt; str;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1540460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540460</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 03 Jul 2008 13:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock on Thu, 03 Jul 2008 14:34:27 GMT]]></title><description><![CDATA[<p>Doppelpost<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-217125.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-217125.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1540483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1540483</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 03 Jul 2008 14:34:27 GMT</pubDate></item></channel></rss>