<?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[Absturz bei CreateThread()?]]></title><description><![CDATA[<p>Hallo Leute</p>
<p>Mein Problem wäre, dass der Thread, den ich mit CreateThread aufrufe nach dem Ausführen abstürzt und das ganze Programm mit in den Tod nimmt.</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;process.h&gt;
#include &lt;winsock2.h&gt; 
#include &lt;iostream.h&gt;   

SOCKET chat(SOCKET client);

int main()
{	
    cout &lt;&lt; &quot;Starting up TCP server\r\n&quot;;
    HANDLE hThread[512];
    DWORD dwID[512];
    DWORD dwRetVal = 0;

    SOCKET server;

    WSADATA wsaData;

    sockaddr_in local;

    int wsaret=WSAStartup(0x101,&amp;wsaData);

    if(wsaret!=0)
    {
        cout &lt;&lt; &quot;Wrong Winsock Version.\n&quot;;
        return 0;
    }

    local.sin_family=AF_INET;
    local.sin_addr.s_addr=INADDR_ANY;
    local.sin_port=htons((u_short)20248);

    server=socket(AF_INET,SOCK_STREAM,0);

    if(server==INVALID_SOCKET)
    {
        return 0;//_endthread();
    }

    if(bind(server,(sockaddr*)&amp;local,sizeof(local))!=0)
    {
        return 0;
    }

    if(listen(server,10)!=0)
    {
        return 0;
    }

    SOCKET client;
    sockaddr_in from;
    int fromlen=sizeof(from);

    while(true)
    {
        char temp[512];
        char input[512];

        client=accept(server,
            (struct sockaddr*)&amp;from,&amp;fromlen);

        cout &lt;&lt; &quot;Connection from &quot; &lt;&lt; inet_ntoa(from.sin_addr) &lt;&lt;&quot;\n&quot;;

        hThread[0] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)chat(client),0,0,&amp;dwID[0]);
    }

    closesocket(server);

    WSACleanup();
}

SOCKET chat(SOCKET client)
{
     char input[512];
     //SOCKET s = (SOCKET) client;
     cout &lt;&lt; &quot;Enter new Message to send:\n&quot;;
     cin &gt;&gt; input;
     send(client,input,strlen(input),0);
     closesocket(client);
     return client;
}
</code></pre>
<p>Weiss jemand, wo der Fehler liegt?</p>
<p>Gruss 3-R4Z0R</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160245/absturz-bei-createthread</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Jul 2026 02:55:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160245.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Sep 2006 16:50:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sat, 23 Sep 2006 16:50:13 GMT]]></title><description><![CDATA[<p>Hallo Leute</p>
<p>Mein Problem wäre, dass der Thread, den ich mit CreateThread aufrufe nach dem Ausführen abstürzt und das ganze Programm mit in den Tod nimmt.</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;process.h&gt;
#include &lt;winsock2.h&gt; 
#include &lt;iostream.h&gt;   

SOCKET chat(SOCKET client);

int main()
{	
    cout &lt;&lt; &quot;Starting up TCP server\r\n&quot;;
    HANDLE hThread[512];
    DWORD dwID[512];
    DWORD dwRetVal = 0;

    SOCKET server;

    WSADATA wsaData;

    sockaddr_in local;

    int wsaret=WSAStartup(0x101,&amp;wsaData);

    if(wsaret!=0)
    {
        cout &lt;&lt; &quot;Wrong Winsock Version.\n&quot;;
        return 0;
    }

    local.sin_family=AF_INET;
    local.sin_addr.s_addr=INADDR_ANY;
    local.sin_port=htons((u_short)20248);

    server=socket(AF_INET,SOCK_STREAM,0);

    if(server==INVALID_SOCKET)
    {
        return 0;//_endthread();
    }

    if(bind(server,(sockaddr*)&amp;local,sizeof(local))!=0)
    {
        return 0;
    }

    if(listen(server,10)!=0)
    {
        return 0;
    }

    SOCKET client;
    sockaddr_in from;
    int fromlen=sizeof(from);

    while(true)
    {
        char temp[512];
        char input[512];

        client=accept(server,
            (struct sockaddr*)&amp;from,&amp;fromlen);

        cout &lt;&lt; &quot;Connection from &quot; &lt;&lt; inet_ntoa(from.sin_addr) &lt;&lt;&quot;\n&quot;;

        hThread[0] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)chat(client),0,0,&amp;dwID[0]);
    }

    closesocket(server);

    WSACleanup();
}

SOCKET chat(SOCKET client)
{
     char input[512];
     //SOCKET s = (SOCKET) client;
     cout &lt;&lt; &quot;Enter new Message to send:\n&quot;;
     cin &gt;&gt; input;
     send(client,input,strlen(input),0);
     closesocket(client);
     return client;
}
</code></pre>
<p>Weiss jemand, wo der Fehler liegt?</p>
<p>Gruss 3-R4Z0R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143154</guid><dc:creator><![CDATA[3-R4Z0R]]></dc:creator><pubDate>Sat, 23 Sep 2006 16:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sat, 23 Sep 2006 16:53:23 GMT]]></title><description><![CDATA[<p>der fehler liegt hier:</p>
<p>(LPTHREAD_START_ROUTINE)chat(client)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143155</guid><dc:creator><![CDATA[hinweis]]></dc:creator><pubDate>Sat, 23 Sep 2006 16:53:23 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sat, 23 Sep 2006 16:54:11 GMT]]></title><description><![CDATA[<p>und hier:</p>
<p>SOCKET chat(SOCKET client)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143157</guid><dc:creator><![CDATA[hinweis]]></dc:creator><pubDate>Sat, 23 Sep 2006 16:54:11 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sat, 23 Sep 2006 17:21:11 GMT]]></title><description><![CDATA[<p>hinweis schrieb:</p>
<blockquote>
<p>der fehler liegt hier:</p>
<p>(LPTHREAD_START_ROUTINE)chat(client)</p>
</blockquote>
<p>Was soll man denn da anderes reintun, anstatt LPTHREAD_START_ROUTINE ?</p>
<p>hinweis schrieb:</p>
<blockquote>
<p>und hier:</p>
<p>SOCKET chat(SOCKET client)</p>
</blockquote>
<p>Da sollte eigentlich alles funktionieren. Der Thread wird ja auch gestartet, nur wenn er durchgearbeitet worden ist, dann stürzt der ab. Wenn ich SOCKET durch DWORD ersetze hilfts auch nicht.</p>
<p>GreetZZ 3-R4Z0R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143163</guid><dc:creator><![CDATA[3-R4Z0R]]></dc:creator><pubDate>Sat, 23 Sep 2006 17:21:11 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sat, 23 Sep 2006 17:24:31 GMT]]></title><description><![CDATA[<p>ne du rufst die funktion einfach nur auf durch das &quot;chat(client)&quot; auf. den rückgabewert, also ein socket, übergibst du dann an CreateThread als startadresse. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> die funktion wird aber nicht als thread gestartet! guck dir einfach mal ein beispiel in der msdn an!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143165</guid><dc:creator><![CDATA[cx]]></dc:creator><pubDate>Sat, 23 Sep 2006 17:24:31 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sat, 23 Sep 2006 19:40:13 GMT]]></title><description><![CDATA[<p>Soweit stürzt das ganze nichtmehr ab. Jedoch kann ich einen SOCKET als Parameter nicht weitergeben.</p>
<p>Weiss da jemand irgendwas?</p>
<p>GreetZZ 3-R4Z0R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143229</guid><dc:creator><![CDATA[3-R4Z0R]]></dc:creator><pubDate>Sat, 23 Sep 2006 19:40:13 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sun, 24 Sep 2006 08:59:41 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=403" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143330</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sun, 24 Sep 2006 08:59:41 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sun, 24 Sep 2006 09:04:17 GMT]]></title><description><![CDATA[<p>Vllt. eine Funktion machen, welche den Socket entgegennimmt und diese Funktion im Thread aufrufen lassen? Mache ich genuso und klappt wunderbar...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143332</guid><dc:creator><![CDATA[Ominion|off]]></dc:creator><pubDate>Sun, 24 Sep 2006 09:04:17 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sun, 24 Sep 2006 09:07:19 GMT]]></title><description><![CDATA[<p>Ominion|off schrieb:</p>
<blockquote>
<p>Vllt. eine Funktion machen, welche den Socket entgegennimmt und diese Funktion im Thread aufrufen lassen? Mache ich genuso und klappt wunderbar...</p>
</blockquote>
<p>Habs jetzt geschafft:<br />
Ich übergebe als Parameter einfach einen Zeiger auf den SOCKET. Geht jetzt wunderbar.</p>
<p>GreetZZ 3-R4Z0R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143337</guid><dc:creator><![CDATA[3-R4Z0R]]></dc:creator><pubDate>Sun, 24 Sep 2006 09:07:19 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sun, 24 Sep 2006 09:08:01 GMT]]></title><description><![CDATA[<p>wie hast du es denn vorher gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143338</guid><dc:creator><![CDATA[Ominion|off]]></dc:creator><pubDate>Sun, 24 Sep 2006 09:08:01 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sun, 24 Sep 2006 09:08:52 GMT]]></title><description><![CDATA[<p>Ominion|off schrieb:</p>
<blockquote>
<p>wie hast du es denn vorher gemacht?</p>
</blockquote>
<p>Den SOCKET selber als Parameter übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143340</guid><dc:creator><![CDATA[3-R4Z0R]]></dc:creator><pubDate>Sun, 24 Sep 2006 09:08:52 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei CreateThread()? on Sun, 24 Sep 2006 09:13:03 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">DWORD WINAPI chat(void* lpParameter)
{
	SOCKET s = *(SOCKET*)lpParameter;
	return 0;
}

CreateThread(NULL, 0, chat, (void*)&amp;s, 0, &amp;dwID[0]);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1143345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143345</guid><dc:creator><![CDATA[gfwq]]></dc:creator><pubDate>Sun, 24 Sep 2006 09:13:03 GMT</pubDate></item></channel></rss>