<?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[winsock2 non-blocking]]></title><description><![CDATA[<p>hi leutz!<br />
also, ich hab nen dickes problem. und zwar schreib ich grad nen programm das sich daten aus dem netz saugt. ich programmier nur den client, der server existiert schon. so...</p>
<p>wenn mein programm startet, dann verbindet der sich mit dem server, und dann schickt er ersma ne menge daten an den server. sollte er zumindest. das problem ist das das nur manchmal klappt, meistens bekomme ich die fehler-meldung WSAEWOULDBLOCK.</p>
<p>so... hab nen bisschen gegoogelt, und rausgefunden das ich meine socket auf non-blocking, bzw asynchron umschalten kann. aber irgendwie kriege ich das nich hin, bzw das funzt nich bei mir. kann mir das jemand helfen?</p>
<p>hab die winsock in eine klasse geschachtelt, in der ich die funtion connect, send, disconnet und reconnect hab...</p>
<p>hoffe ihr könnt mir helfen!!!</p>
<p>thx in advance,<br />
yours arnold72</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/127858/winsock2-non-blocking</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 17:13:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/127858.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Nov 2005 09:31:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to winsock2 non-blocking on Mon, 28 Nov 2005 09:31:33 GMT]]></title><description><![CDATA[<p>hi leutz!<br />
also, ich hab nen dickes problem. und zwar schreib ich grad nen programm das sich daten aus dem netz saugt. ich programmier nur den client, der server existiert schon. so...</p>
<p>wenn mein programm startet, dann verbindet der sich mit dem server, und dann schickt er ersma ne menge daten an den server. sollte er zumindest. das problem ist das das nur manchmal klappt, meistens bekomme ich die fehler-meldung WSAEWOULDBLOCK.</p>
<p>so... hab nen bisschen gegoogelt, und rausgefunden das ich meine socket auf non-blocking, bzw asynchron umschalten kann. aber irgendwie kriege ich das nich hin, bzw das funzt nich bei mir. kann mir das jemand helfen?</p>
<p>hab die winsock in eine klasse geschachtelt, in der ich die funtion connect, send, disconnet und reconnect hab...</p>
<p>hoffe ihr könnt mir helfen!!!</p>
<p>thx in advance,<br />
yours arnold72</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928828</guid><dc:creator><![CDATA[arnold72]]></dc:creator><pubDate>Mon, 28 Nov 2005 09:31:33 GMT</pubDate></item><item><title><![CDATA[Reply to winsock2 non-blocking on Mon, 28 Nov 2005 09:39:58 GMT]]></title><description><![CDATA[<p>Du solltest Dir mal WSAEventSelect und WSAWaitForMultipleEvents und WSAEnumNetworkEvents anschauen...<br />
Hierzu sollte es auch genügend Beispiele auf Codeproject oder Codeguru geben...</p>
<p>WSAEnumNetworkEvents: <a href="http://msdn.microsoft.com/library/en-us/winsock/winsock/wsaenumnetworkevents_2.asp" rel="nofollow">http://msdn.microsoft.com/library/en-us/winsock/winsock/wsaenumnetworkevents_2.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/928835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928835</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 28 Nov 2005 09:39:58 GMT</pubDate></item><item><title><![CDATA[Reply to winsock2 non-blocking on Mon, 28 Nov 2005 09:46:18 GMT]]></title><description><![CDATA[<p>hatte das schon auf asynchron umgestellt, hatte aber dann das problem das der nach send() 0 zurückgab, worauf ich reconnecten wollte, das aber nur invalid_socket zurückgeliefert hat...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928840</guid><dc:creator><![CDATA[arnold72]]></dc:creator><pubDate>Mon, 28 Nov 2005 09:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to winsock2 non-blocking on Mon, 28 Nov 2005 09:56:24 GMT]]></title><description><![CDATA[<p>Wenn Du es auf asynchron umstellst, dann ist es <strong>normal</strong> dass es manchmal WSA_WOULDBLOCK zurückliefert!!! Wenn Du dies nicht willst, dann darfst Du es nicht auf asynchron (non-blocking) stellen! Dann musst Du es auch &quot;blocking&quot; lassen!<br />
Was ist denn jetzt Dein Problem? Aus meiner Sicht hast Du keines, da es ein normales Verhalten ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928845</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 28 Nov 2005 09:56:24 GMT</pubDate></item><item><title><![CDATA[Reply to winsock2 non-blocking on Mon, 28 Nov 2005 10:14:06 GMT]]></title><description><![CDATA[<p>mein problem ist das das prog nicht die ganzen daten wegschickt die es normalerweise wegschicken sollte....</p>
<p>das sind so um den dreh 60kb...</p>
<p>irgendwann blockt der, und dann gibt der halt immer 0 zurück...<br />
heisst das denn dann das der die daten auch sendet wenn der 0 zurück gibt?<br />
( also wenn ich auf asy hab )</p>
<p>bzw, wenn der einmal wsa_wouldblock gesagt hat, das man das irgendwie wieder zurückstellen kann, so das der dann nach send auch sagt was raus gegangen ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928853</guid><dc:creator><![CDATA[arnold72]]></dc:creator><pubDate>Mon, 28 Nov 2005 10:14:06 GMT</pubDate></item><item><title><![CDATA[Reply to winsock2 non-blocking on Mon, 28 Nov 2005 10:21:07 GMT]]></title><description><![CDATA[<p>arnold72 schrieb:</p>
<blockquote>
<p>mein problem ist das das prog nicht die ganzen daten wegschickt die es normalerweise wegschicken sollte....</p>
<p>das sind so um den dreh 60kb...</p>
<p>irgendwann blockt der, und dann gibt der halt immer 0 zurück...</p>
</blockquote>
<p>Das bedeutet eigentlich nur, dass der Server gerade beschäftigt ist und gerade keine Daten annehmen kann.<br />
Wenn &quot;send&quot; WSAEWOULDBLOCK zurückliefert und Du hast einen Event auf &quot;FD_WRITE&quot; gesetzt (WSAEventSelect), dann musst Du eigentlich nur auf das Event warten und wenn FD_WRITE signalisiert wird, kannst Du wieder weitersenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928860</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 28 Nov 2005 10:21:07 GMT</pubDate></item><item><title><![CDATA[Reply to winsock2 non-blocking on Mon, 28 Nov 2005 10:23:52 GMT]]></title><description><![CDATA[<p>so hab ichs ja auch gemacht. nur dann hat der nach send immer 0 zurückgeliefert. und das heißt ja das der nix geschickt hat...</p>
<p>muss ich da irgendwie noch reconnecten oder so was? oder schickt der die daten trotzdem weg, und liefert nur 0 zurück weil die vielleicht noch im buffer sind, oder wat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928862</guid><dc:creator><![CDATA[arnold72]]></dc:creator><pubDate>Mon, 28 Nov 2005 10:23:52 GMT</pubDate></item><item><title><![CDATA[Reply to winsock2 non-blocking on Mon, 28 Nov 2005 10:30:03 GMT]]></title><description><![CDATA[<p>Wenn der 0 zurückliefert heisst das eigentlich immer dass Du &quot;WSAGetLastError&quot; aufrufen musst und nach dem Error-Code schauen musst.<br />
Wenn er WSAWOULDBLOCK ist, dann mach bitte das was ich weiter oben beschrieben habe (ja, Du musst das letzte Paket nochmals senden).<br />
Wenn er was anderes zurückliefert, dann poste bitte mal den Fehlercode...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928866</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 28 Nov 2005 10:30:03 GMT</pubDate></item><item><title><![CDATA[Reply to winsock2 non-blocking on Mon, 28 Nov 2005 13:57:56 GMT]]></title><description><![CDATA[<p>argh man lies doch bitte was die MSDN dazu zu sagen hat. Es wurde doch auch schon 100 mal gesagt was du machen musst wenn WSAWOULDBLOCK zurückgegeben wird. Du kannst auch blocking sockets nehmen und eigene threads benutzen aber lies doch einfach mal in der MSDN da gibts zum thema sockets ziemlich viel und ganz gut erklärt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928997</guid><dc:creator><![CDATA[strstr]]></dc:creator><pubDate>Mon, 28 Nov 2005 13:57:56 GMT</pubDate></item></channel></rss>