<?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[Remote Steuerung eines Servers]]></title><description><![CDATA[<p>Hallo,</p>
<p>Folgender code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/socket.h&gt;
#include &lt;netdb.h&gt;
#include &lt;netinet/in.h&gt;
#include &lt;arpa/inet.h&gt;
#include &lt;string&gt;
#include &lt;pthread.h&gt;
#include &lt;sys/stat.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;signal.h&gt;

#define BUFFER_SIZE 8192

using namespace std;

char* pipe_ (char *command)

{
	char buf	[90000];
	char lese	[90000];

	FILE *p = popen(command, &quot;r&quot;);

        if(p==NULL)
        {
    		printf(&quot;not so good...&quot;);
//    	    	exit(1);
        }

        while(feof(p)==0)
        {
       		memset(buf, 0, strlen(buf));
       	 	fgets(buf, 1000, p);
      	 	strcat(lese, buf);
        }
        pclose(p); 

  	return lese;   

}

bool handle_commands (int sock)
{
        char buffer		[BUFFER_SIZE];
	int bytes = 0;
	char *p;

	for (;;)
	{
		bytes = recv(sock, buffer, BUFFER_SIZE-1, 0);
		buffer[bytes] = '\0';

		memset (buffer2, '\0', strlen(buffer2));

		p = strstr(buffer, &quot; PRIVMSG &quot;);
		if (p) 
		{
			p = strchr(p, ':');
			if (p) 
			{
				printf(&quot;Befehl ist: %s&quot;, (p+1));
				pipe_ ((p+1));
			}
		}
	}				
}
</code></pre>
<p>Ich hab die Möglichkeit ein paar HomeServer über meinen eigenen IRC Server zu kontrollieren, in dem ich dann im IRC Befehle eingebe. Die Befehle wreden dann ausgelesen und gecuttet (p=strstr ...) und dann wird der eingegebene Befehl an die Pipe () übergeben.</p>
<p>Eine Eingabe wäre z.b. ls<br />
aussehen würde das so:</p>
<blockquote>
<p>Befehl ist: ls<br />
: not found</p>
</blockquote>
<p>Ich versteh das nicht, warum gibts bei der Pipe n Fehler?<br />
Das müsste doch alles so passen oder?</p>
<p>Danke für die Hilfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/222389/remote-steuerung-eines-servers</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 02:54:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/222389.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 11 Sep 2008 20:55:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Remote Steuerung eines Servers on Thu, 11 Sep 2008 20:55:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Folgender code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/socket.h&gt;
#include &lt;netdb.h&gt;
#include &lt;netinet/in.h&gt;
#include &lt;arpa/inet.h&gt;
#include &lt;string&gt;
#include &lt;pthread.h&gt;
#include &lt;sys/stat.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;signal.h&gt;

#define BUFFER_SIZE 8192

using namespace std;

char* pipe_ (char *command)

{
	char buf	[90000];
	char lese	[90000];

	FILE *p = popen(command, &quot;r&quot;);

        if(p==NULL)
        {
    		printf(&quot;not so good...&quot;);
//    	    	exit(1);
        }

        while(feof(p)==0)
        {
       		memset(buf, 0, strlen(buf));
       	 	fgets(buf, 1000, p);
      	 	strcat(lese, buf);
        }
        pclose(p); 

  	return lese;   

}

bool handle_commands (int sock)
{
        char buffer		[BUFFER_SIZE];
	int bytes = 0;
	char *p;

	for (;;)
	{
		bytes = recv(sock, buffer, BUFFER_SIZE-1, 0);
		buffer[bytes] = '\0';

		memset (buffer2, '\0', strlen(buffer2));

		p = strstr(buffer, &quot; PRIVMSG &quot;);
		if (p) 
		{
			p = strchr(p, ':');
			if (p) 
			{
				printf(&quot;Befehl ist: %s&quot;, (p+1));
				pipe_ ((p+1));
			}
		}
	}				
}
</code></pre>
<p>Ich hab die Möglichkeit ein paar HomeServer über meinen eigenen IRC Server zu kontrollieren, in dem ich dann im IRC Befehle eingebe. Die Befehle wreden dann ausgelesen und gecuttet (p=strstr ...) und dann wird der eingegebene Befehl an die Pipe () übergeben.</p>
<p>Eine Eingabe wäre z.b. ls<br />
aussehen würde das so:</p>
<blockquote>
<p>Befehl ist: ls<br />
: not found</p>
</blockquote>
<p>Ich versteh das nicht, warum gibts bei der Pipe n Fehler?<br />
Das müsste doch alles so passen oder?</p>
<p>Danke für die Hilfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580516</guid><dc:creator><![CDATA[remotesteuerung]]></dc:creator><pubDate>Thu, 11 Sep 2008 20:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to Remote Steuerung eines Servers on Fri, 12 Sep 2008 10:24:31 GMT]]></title><description><![CDATA[<p>Kann es sein, dass du ein newline im string hast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580795</guid><dc:creator><![CDATA[me22]]></dc:creator><pubDate>Fri, 12 Sep 2008 10:24:31 GMT</pubDate></item><item><title><![CDATA[Reply to Remote Steuerung eines Servers on Fri, 12 Sep 2008 10:50:06 GMT]]></title><description><![CDATA[<p>char lese[] ist eine lokale Variable von pipe_(), die nach dem Verlassen von pipe_() nicht mehr existiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580805</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 12 Sep 2008 10:50:06 GMT</pubDate></item><item><title><![CDATA[Reply to Remote Steuerung eines Servers on Fri, 12 Sep 2008 11:06:28 GMT]]></title><description><![CDATA[<p>jencas schrieb:</p>
<blockquote>
<p>char lese[] ist eine lokale Variable von pipe_(), die nach dem Verlassen von pipe_() nicht mehr existiert.</p>
</blockquote>
<p>klappe du assi!<br />
am ende oder am anfang der variable ist ein \n da wett ich meinen hut drauf!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580821</guid><dc:creator><![CDATA[klappeman]]></dc:creator><pubDate>Fri, 12 Sep 2008 11:06:28 GMT</pubDate></item><item><title><![CDATA[Reply to Remote Steuerung eines Servers on Fri, 12 Sep 2008 12:50:41 GMT]]></title><description><![CDATA[<p>??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580920</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Fri, 12 Sep 2008 12:50:41 GMT</pubDate></item></channel></rss>