<?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[socket wird ungültig]]></title><description><![CDATA[<pre><code class="language-cpp">void bla(LPVOID hm)
{
	SOCKET sg=(SOCKET)hm;
	if(!sg) printf(&quot;error\n&quot;);  //immer error
}

bla((LPVOID)sockfd);
</code></pre>
<p>Wieso wird der Socket den ich übergebe ungültig?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/111775/socket-wird-ungültig</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 04:33:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/111775.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Jun 2005 01:38:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to socket wird ungültig on Sun, 05 Jun 2005 01:38:09 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void bla(LPVOID hm)
{
	SOCKET sg=(SOCKET)hm;
	if(!sg) printf(&quot;error\n&quot;);  //immer error
}

bla((LPVOID)sockfd);
</code></pre>
<p>Wieso wird der Socket den ich übergebe ungültig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/802486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/802486</guid><dc:creator><![CDATA[SocketFreak]]></dc:creator><pubDate>Sun, 05 Jun 2005 01:38:09 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Sun, 05 Jun 2005 04:40:47 GMT]]></title><description><![CDATA[<p>SocketFreak schrieb:</p>
<blockquote>
<p>Wieso wird der Socket den ich übergebe ungültig?</p>
</blockquote>
<p>Was meinst du mit &quot;wird&quot;? War der Socket jemals gültig? Durch den Aufruf von bla kann er sich jedenfalls nicht ändern. Warum überhaupt der Cast nach void*?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/802494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/802494</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Sun, 05 Jun 2005 04:40:47 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Sun, 05 Jun 2005 04:43:59 GMT]]></title><description><![CDATA[<p>Du solltest wohl mit Pointern arbeiten, oder deiner Funktion sagen, dass sie einen SOCKET entgegennehmen soll <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/802495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/802495</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sun, 05 Jun 2005 04:43:59 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Sun, 05 Jun 2005 11:39:03 GMT]]></title><description><![CDATA[<p>Vorher war der Socket gültig. Die Funktion stellt eigentlich einen Thread dar. Wenn ich der Funktion einen Zeiger auf eine Struktur übergebe</p>
<pre><code class="language-cpp">struct myData{
  SOCKET msock;
};
</code></pre>
<p>dann funktioniert die ganze Sache....aber warum nur?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/802656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/802656</guid><dc:creator><![CDATA[socketFreak]]></dc:creator><pubDate>Sun, 05 Jun 2005 11:39:03 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Sun, 05 Jun 2005 14:20:58 GMT]]></title><description><![CDATA[<p>socketFreak schrieb:</p>
<blockquote>
<p>Die Funktion stellt eigentlich einen Thread dar.</p>
</blockquote>
<p>Eigentlich musst du uns den Code zeigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/802780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/802780</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Sun, 05 Jun 2005 14:20:58 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 09:19:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct myData{
	SOCKET msock;
};
</code></pre>
<pre><code class="language-cpp">DWORD WINAPI ThreadProc( LPVOID lpParam )
{
	printf(&quot;start receive thread\n&quot;);
	myData *DATA=(myData*)lpParam;
	SOCKET sockfd=DATA-&gt;msock;

	char chBuf[1024]=&quot;&quot;;
	while( sockfd )
	{
		int cbRead = recv(sockfd, chBuf, 1024,0);
		if( cbRead &lt;= 0 )	break;
		chBuf[cbRead] = '\0';
		printf(&quot;DATEN: %s ANZAHL: %i\n&quot;, chBuf, cbRead);
		int iCOOKIE=suchSRV_COOKIE(chBuf, cbRead);
		if(iCOOKIE!=-1) //Antwort SRV_COOKIE
		{
			fillCookie(chBuf, iCOOKIE, cbRead);
		}
	}
	printf(&quot;ende receive thread\n&quot;);
	return 0;
}
</code></pre>
<pre><code class="language-cpp">myData param;
param.msock=sockfd;
HANDLE m_hThread = CreateThread(NULL, 0, ThreadProc, &amp;param, 0, NULL);
</code></pre>
<p>Bisher funktioniert das, aber ich finds blöd gelöst eine struktur zu übergeben nur wegen einem Socket. Bitte helft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f622.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--crying_face"
      title=";-("
      alt="😢"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/803343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803343</guid><dc:creator><![CDATA[socketFreak]]></dc:creator><pubDate>Mon, 06 Jun 2005 09:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 09:28:23 GMT]]></title><description><![CDATA[<p>Zeig doch mal, wie du ohne die Struktur den Thread startest. Ich vermute, daran liegt's.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/803350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803350</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 06 Jun 2005 09:28:23 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 10:48:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">DWORD WINAPI ThreadProc( LPVOID lpParam )
{
	printf(&quot;start receive thread\n&quot;);
	int sockfd=(int)lpParam;

	char chBuf[1024]=&quot;&quot;;
	while( sockfd )
	{
		int cbRead = recv(sockfd, chBuf, 1,0);
		cout&lt;&lt;&quot;Error: &quot;&lt;&lt;WSAGetLastError()&lt;&lt;endl; //10038
		if( cbRead &lt;= 0 )	break;
		chBuf[cbRead] = '\0';
		printf(&quot;DATEN: %s ANZAHL: %i\n&quot;, chBuf, cbRead);
	}
	printf(&quot;ende receive thread\n&quot;);
	return 0;
}

CreateThread(NULL, 0, ThreadProc, &amp;sockfd, 0, NULL);
</code></pre>
<p>10038 - WSAENOTSOCK:<br />
---------------------<br />
Socket operation on nonsocket.<br />
An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/803406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803406</guid><dc:creator><![CDATA[socketFreak]]></dc:creator><pubDate>Mon, 06 Jun 2005 10:48:38 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 10:53:50 GMT]]></title><description><![CDATA[<p>Habs raus bekommen woran es lag. Du hattest recht mit dem Aufruf. SO muss er aussehen:</p>
<pre><code class="language-cpp">CreateThread(NULL, 0, ThreadProc, (LPVOID)sockfd, 0, NULL);
</code></pre>
<p>...leider habe ich das nur durch probieren herausgefunden. Kannst du mir erklären warum ich explizit (LPVOID) schreiben muss?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/803408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803408</guid><dc:creator><![CDATA[socketFreak]]></dc:creator><pubDate>Mon, 06 Jun 2005 10:53:50 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 11:32:34 GMT]]></title><description><![CDATA[<p>socketFreak schrieb:</p>
<blockquote>
<p>SO muss er aussehen:</p>
</blockquote>
<p>Das wage ich zu bezweifeln. Wenn das klappt, dann wohl nur zufällig. Zeig mal ein wenig Code drumherum, vor allem, was die Deklaration von sockfd angeht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/803439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803439</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 06 Jun 2005 11:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 13:22:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">long rc=startWinsock();
	if(rc!=0)	printf(&quot;Fehler: startWinsock, fehler code: %d\n&quot;,rc);
	int sockfd;
	sockaddr_in servaddr;
	if((sockfd=socket(AF_INET,SOCK_STREAM, 0)) &lt;0)	printf(&quot;socket_error&quot;);
	memset(&amp;servaddr,0,sizeof(servaddr)); // zuerst alles auf 0 setzten 
	servaddr.sin_family=AF_INET;
	servaddr.sin_port=htons(port);

	rc=getAddrFromString(server,&amp;servaddr);  
	if(rc==SOCKET_ERROR)  
	{    
		printf(&quot;IP für %s konnte nicht aufgeloest werden\n&quot;, server);  
		return 1;  
	}   else      printf(&quot;IP aufgeloest!\n&quot;);  

	rc=connect(sockfd,(SOCKADDR*)&amp;servaddr,sizeof(SOCKADDR));
	if(rc==SOCKET_ERROR)
	{
		printf(&quot;Fehler: connect gescheitert, fehler code: %d\n&quot;,WSAGetLastError());
		return 1;
	}
	else	printf(&quot;Verbunden mit %s\n&quot;, server);

	FLAP loginFlap;
	loginFlap.sendFlapLoginPacket(sockfd, &quot;138518546&quot;, &quot;moritz&quot;);
	HANDLE m_hThread = CreateThread(NULL, 0, ThreadProc, (LPVOID)sockfd, 0, NULL);
</code></pre>
<p>Bingespannt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/803539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803539</guid><dc:creator><![CDATA[socketFreak]]></dc:creator><pubDate>Mon, 06 Jun 2005 13:22:26 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 13:37:54 GMT]]></title><description><![CDATA[<p>Warum &quot;int sockfd;&quot; ?<br />
Warum nimmst du nicht &quot;SOCKET sockfd&quot; (in der winsock.h ist SOCKET als UINT_PTR definiert...) ?<br />
Naja egal, vermutl. völlig unwichtig <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=";D"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/803557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803557</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Mon, 06 Jun 2005 13:37:54 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 14:04:46 GMT]]></title><description><![CDATA[<p>Habe vor mir ein Buch liegen das den socket als int definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/803590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803590</guid><dc:creator><![CDATA[socketFreak]]></dc:creator><pubDate>Mon, 06 Jun 2005 14:04:46 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 14:38:06 GMT]]></title><description><![CDATA[<p>Hiho</p>
<p>Folgendes Problemchen:</p>
<p>--------------------------------------------------------------------------<br />
DWORD WINAPI foo(LPVOID a)<br />
{<br />
FLAP* b=(FLAP*)&amp;a;<br />
cout&lt;&lt;&quot;Id: &quot;&lt;&lt;b-&gt;getChanId()&lt;&lt;endl;<br />
}</p>
<p>FLAP loginFlap(sockfd);<br />
foo((LPVOID)&amp;loginFlap);<br />
--------------------------------------------------------------------------<br />
FLAP ist eine Klasse.<br />
Ich kann leider in der foo Funkt. nicht auf dir ursprüglichen Werte zurück greifen, d.h. *b zeigt nicht auf loginFlap sondern zeigt einfach in`s Grüne. Leider kann ich den Datentyp LPVOID nicht ändern da foo [eigentlich] eine Threadfunktion ist - die von Natur aus LPVOID sein müssen.</p>
<p>Wüsstet Ihr eine Möglichkeit wie ich dennoch auf die Daten, in der foo Funkt., zugreifen kann? - ich glaube mit Strukturen (struct) funktioniert es, aber sie sind eingeschränkt nutzbar. Auf eine globale Variable möchte ich verzichten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/803631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803631</guid><dc:creator><![CDATA[socketFreak]]></dc:creator><pubDate>Mon, 06 Jun 2005 14:38:06 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 14:49:03 GMT]]></title><description><![CDATA[<blockquote>
<p>FLAP* b=(FLAP*)&amp;a;</p>
</blockquote>
<p>Hier ist denke ich, das &amp; zu viel - a ist ja schon ein Pointer.</p>
<pre><code>FLAP loginFlap(sockfd);
foo((LPVOID)&amp;loginFlap);
</code></pre>
<p>loginFlap ist eine Funktion, die ein Objekt zurückgeben soll, oder? Besser solltest du einen Pointer zurückgeben - geht das anders überhaupt?!<br />
Nur was genau willst du mit &quot;(LPVOID)&amp;loginFlap&quot; machen - ein Funktionsaufruf ist das ja nicht wirklich. Vielmehr holst du doch die Adresse eines Funktionspointers - oder so ähnlich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/803643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803643</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 06 Jun 2005 14:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 15:05:40 GMT]]></title><description><![CDATA[<p>loginFlap -&gt; ist ein Object^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/803664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803664</guid><dc:creator><![CDATA[socketFreak]]></dc:creator><pubDate>Mon, 06 Jun 2005 15:05:40 GMT</pubDate></item><item><title><![CDATA[Reply to socket wird ungültig on Mon, 06 Jun 2005 15:36:46 GMT]]></title><description><![CDATA[<p>Man merkt, dass ich nicht viel mit C++ bzw. OO zu tun habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Aber meine erste Bemerkung sollte trotzdem zutreffen <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/803701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/803701</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 06 Jun 2005 15:36:46 GMT</pubDate></item></channel></rss>