<?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[Pythonfrage: setblocking() ? recv()?]]></title><description><![CDATA[<p>recv(bytes)<br />
wartet ja bis wirklich ALLE &lt;bytes&gt; Bytes empfangen wurden. Deswegen funkt dieses prog net gescheit. Mit setblocking(0)<br />
hab ich den socket auf non-blocking gesetzt und auch die exception angefangen, aber es wartet mmer noch bis alle &lt;bytes&gt;<br />
Byes empfangen wurden, in meinem fall 4096.</p>
<pre><code>import socket, thread

def recv_and_output(args):
	while 1:
		try:
			buf = args.recv(4096)
			if not buf:
				break
			print buf

		except socket.error, (errno, string):
			pass

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
sock.setblocking(0)
try:
	sock.connect(('pop.gmx.net', 110))
except socket.error:
	pass

thread.start_new_thread(recv_and_output, (sock,))

while 1:
	buf = raw_input()
	if not sock.send(buf):
		break

sock.close()
</code></pre>
<p>Warum funkt das nicht? In C hatte ich keine probleme, hier in python schon.<br />
kann mir jemand helfen? Ich möchte, dass recv(4096) nicht wartet bis 4096 bytes eingelesen werden, sondern dass soviele bytes eingelesen werden, wie zZ vorhanden sind, was aber eine maximalgrösse von 4096 betragen darf</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160084/pythonfrage-setblocking-recv</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 00:11:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160084.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Sep 2006 17:56:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pythonfrage: setblocking() ? recv()? on Thu, 21 Sep 2006 17:56:53 GMT]]></title><description><![CDATA[<p>recv(bytes)<br />
wartet ja bis wirklich ALLE &lt;bytes&gt; Bytes empfangen wurden. Deswegen funkt dieses prog net gescheit. Mit setblocking(0)<br />
hab ich den socket auf non-blocking gesetzt und auch die exception angefangen, aber es wartet mmer noch bis alle &lt;bytes&gt;<br />
Byes empfangen wurden, in meinem fall 4096.</p>
<pre><code>import socket, thread

def recv_and_output(args):
	while 1:
		try:
			buf = args.recv(4096)
			if not buf:
				break
			print buf

		except socket.error, (errno, string):
			pass

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
sock.setblocking(0)
try:
	sock.connect(('pop.gmx.net', 110))
except socket.error:
	pass

thread.start_new_thread(recv_and_output, (sock,))

while 1:
	buf = raw_input()
	if not sock.send(buf):
		break

sock.close()
</code></pre>
<p>Warum funkt das nicht? In C hatte ich keine probleme, hier in python schon.<br />
kann mir jemand helfen? Ich möchte, dass recv(4096) nicht wartet bis 4096 bytes eingelesen werden, sondern dass soviele bytes eingelesen werden, wie zZ vorhanden sind, was aber eine maximalgrösse von 4096 betragen darf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142074</guid><dc:creator><![CDATA[pyblem]]></dc:creator><pubDate>Thu, 21 Sep 2006 17:56:53 GMT</pubDate></item><item><title><![CDATA[Reply to Pythonfrage: setblocking() ? recv()? on Thu, 21 Sep 2006 23:04:44 GMT]]></title><description><![CDATA[<p>Hat deine Maschine zufällig eine Celeron-CPU? Damit hat Python nämlich generell Probleme, u.a. funktionieren die Sockets mit diesen Prozessoren nicht richtig...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142261</guid><dc:creator><![CDATA[Kenner der Penner]]></dc:creator><pubDate>Thu, 21 Sep 2006 23:04:44 GMT</pubDate></item><item><title><![CDATA[Reply to Pythonfrage: setblocking() ? recv()? on Fri, 22 Sep 2006 12:39:34 GMT]]></title><description><![CDATA[<p>Würden die Moderatoren bitte diesen Thread von Müll befreien? Danke.</p>
<p>BACK TO TOPIC: Hat da jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142521</guid><dc:creator><![CDATA[pyblem]]></dc:creator><pubDate>Fri, 22 Sep 2006 12:39:34 GMT</pubDate></item></channel></rss>