<?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[Wieso tut das nicht?]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>hab diesen quelltext abgeschrieben, von zotteljedi. Jedoch stimmt was mit der Zeile mit dem 'accept' nicht. Compilerfehler lautet:</p>
<p>passing `int' to argument 3 of `accept(int, sockaddr *, socklen_t *)' lacks a cast</p>
<p>Kann mir jemand sagen was ich falsch abschreibe??</p>
<p>-------------------------------------------</p>
<p>int s, c, remote_len, running;<br />
unsigned short port;<br />
struct in_addr addr;<br />
struct sockaddr_in local;<br />
struct sockaddr_in remote;</p>
<p>remote_len = 0;</p>
<p>addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);<br />
port = SERVER_PORT;</p>
<p>cout &lt;&lt; &quot;going to bind server to &quot; &lt;&lt; inet_ntoa(addr) &lt;&lt; &quot;: &quot; &lt;&lt; port &lt;&lt; endl;</p>
<p>s = socket( PF_INET, SOCK_STREAM, 0 );</p>
<p>if( s == 1 )<br />
{<br />
cout &lt;&lt; &quot;socket failed&quot; &lt;&lt; endl;<br />
return false;<br />
}</p>
<p>local.sin_addr = addr;<br />
local.sin_port = htons(port);<br />
local.sin_family = AF_INET;</p>
<p>if( bind( s, (struct sockaddr*) &amp;local, sizeof(local)) == -1 )<br />
{<br />
cout &lt;&lt; &quot;bind failed&quot; &lt;&lt; endl;<br />
return false;<br />
}</p>
<p>if( listen( s, 3) == -1 )<br />
{<br />
cout &lt;&lt; &quot;listen failed&quot; &lt;&lt; endl;<br />
return false;<br />
}</p>
<p>running = 1;<br />
while( running == 1 )<br />
{<br />
remote_len = sizeof(remote);<br />
c = accept( s, (struct sockaddr*) &amp;remote, remote_len );</p>
<p>if( c == -1 )<br />
{<br />
continue;<br />
}</p>
<p>cout &lt;&lt; &quot;client from &quot; &lt;&lt; inet_ntoa(remote.sin_addr) &lt;&lt; &quot;: &quot; &lt;&lt; ntohs(remote.sin_port) &lt;&lt; &quot; arrived&quot; &lt;&lt; endl;</p>
<p>running = handle_client(c);</p>
<p>cout &lt;&lt; &quot;client left&quot; &lt;&lt; endl;</p>
<p>close (c);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145909/wieso-tut-das-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 13:16:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145909.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 May 2006 12:36:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 12:36:45 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>hab diesen quelltext abgeschrieben, von zotteljedi. Jedoch stimmt was mit der Zeile mit dem 'accept' nicht. Compilerfehler lautet:</p>
<p>passing `int' to argument 3 of `accept(int, sockaddr *, socklen_t *)' lacks a cast</p>
<p>Kann mir jemand sagen was ich falsch abschreibe??</p>
<p>-------------------------------------------</p>
<p>int s, c, remote_len, running;<br />
unsigned short port;<br />
struct in_addr addr;<br />
struct sockaddr_in local;<br />
struct sockaddr_in remote;</p>
<p>remote_len = 0;</p>
<p>addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);<br />
port = SERVER_PORT;</p>
<p>cout &lt;&lt; &quot;going to bind server to &quot; &lt;&lt; inet_ntoa(addr) &lt;&lt; &quot;: &quot; &lt;&lt; port &lt;&lt; endl;</p>
<p>s = socket( PF_INET, SOCK_STREAM, 0 );</p>
<p>if( s == 1 )<br />
{<br />
cout &lt;&lt; &quot;socket failed&quot; &lt;&lt; endl;<br />
return false;<br />
}</p>
<p>local.sin_addr = addr;<br />
local.sin_port = htons(port);<br />
local.sin_family = AF_INET;</p>
<p>if( bind( s, (struct sockaddr*) &amp;local, sizeof(local)) == -1 )<br />
{<br />
cout &lt;&lt; &quot;bind failed&quot; &lt;&lt; endl;<br />
return false;<br />
}</p>
<p>if( listen( s, 3) == -1 )<br />
{<br />
cout &lt;&lt; &quot;listen failed&quot; &lt;&lt; endl;<br />
return false;<br />
}</p>
<p>running = 1;<br />
while( running == 1 )<br />
{<br />
remote_len = sizeof(remote);<br />
c = accept( s, (struct sockaddr*) &amp;remote, remote_len );</p>
<p>if( c == -1 )<br />
{<br />
continue;<br />
}</p>
<p>cout &lt;&lt; &quot;client from &quot; &lt;&lt; inet_ntoa(remote.sin_addr) &lt;&lt; &quot;: &quot; &lt;&lt; ntohs(remote.sin_port) &lt;&lt; &quot; arrived&quot; &lt;&lt; endl;</p>
<p>running = handle_client(c);</p>
<p>cout &lt;&lt; &quot;client left&quot; &lt;&lt; endl;</p>
<p>close (c);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049514</guid><dc:creator><![CDATA[Petommy]]></dc:creator><pubDate>Tue, 02 May 2006 12:36:45 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 12:39:41 GMT]]></title><description><![CDATA[<p>schau dir doch mal an, was accept als 3tes argument erwartet, und dann schau mal, was du übergibst!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049521</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Tue, 02 May 2006 12:39:41 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 12:42:21 GMT]]></title><description><![CDATA[<p>Erstens solltest du CPP-Tags verwenden, das erhöht die Lesbarkeit des Programms.</p>
<p>Und zweitens sagt dir dein Compiler doch, was der Fehler ist: <a href="http://man.cx/accept" rel="nofollow">man: accept</a> erwartet als dritten Parameter einen Pointer auf eine &quot;socklen_t&quot; Variable und keinen blanken int-Wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049523</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 02 May 2006 12:42:21 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 12:43:32 GMT]]></title><description><![CDATA[<p>Ich weiß nicht genau was socklen_t ist aber sicher erwartet accept als 3. Parameter einen Zeiger drauf. Soll also heißen du musst auch vor den 3. Parameter ein '&amp;' schreiben um die addresse zu übergeben.</p>
<p>Ja da hat hemand vor mir gepostet. socklen_t ist bestimmt nur ein typedef auf ein unsigned irgendwas (int oder long).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049528</guid><dc:creator><![CDATA[idexe]]></dc:creator><pubDate>Tue, 02 May 2006 12:43:32 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 12:51:26 GMT]]></title><description><![CDATA[<p>Danke für die Antworten!</p>
<p>Dacht ich hol mir da was fertiges ausm Internet, damit ich ein bisschen rumspielen kann damit und nun...</p>
<p>Im Großen und Ganzen versteh ich den Code. Aber ich weiß nicht wirklich was remote und remote_len sein sollen...</p>
<p>Auffallen tut mir aber dennoch das dem remote nix zugewiesen wird..</p>
<p>Aber wie gesagt, ist nur abgeschrieben, weiß nicht wo der Fehler ist.</p>
<p>struct sockaddr_in remote;<br />
remote_len = 0;<br />
remote_len = sizeof(remote);<br />
c = accept( s, (struct sockaddr*) &amp;remote, &amp;remote_len );</p>
<p>Das &amp; hatte ich vorhin nur vergessen.. ist aber schon drin.. und tut dennoch nicht..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049536</guid><dc:creator><![CDATA[Petommy]]></dc:creator><pubDate>Tue, 02 May 2006 12:51:26 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 12:58:15 GMT]]></title><description><![CDATA[<p>c = accept( s, (struct sockaddr*) &amp;remote, &amp;remote_len );</p>
<p>Wenn das '&amp;' drin ist bekomm ich folgenden Fehler:</p>
<p>passing `int *' as argument 3 of `accept(int, sockaddr *, socklen_t *)' changes signedness</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049540</guid><dc:creator><![CDATA[Petommy]]></dc:creator><pubDate>Tue, 02 May 2006 12:58:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 13:00:20 GMT]]></title><description><![CDATA[<p>Versuchs so:</p>
<pre><code class="language-cpp">accept( s, (struct sockaddr*) &amp;remote, (socklen_t*)&amp;remote_len );
</code></pre>
<p>oder probiere oben, anstatt:<br />
int remote_len;<br />
socklen_t remote_len;</p>
<p>Weiß nicht genau was Code abschreiben bringen soll. Aber wenn's Spaß macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049543</guid><dc:creator><![CDATA[Idexe]]></dc:creator><pubDate>Tue, 02 May 2006 13:00:20 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 13:00:38 GMT]]></title><description><![CDATA[<p>Dann definiere remote_len doch nicht als int - wie idexe sagte, ist das vermutlich ein <strong>unsigned</strong> Typ:</p>
<pre><code class="language-cpp">struct sockadrr remote;
socklen_t remote_len=sizeof(remote);
c=accept(s,&amp;remote,&amp;remote_len);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1049545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049545</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 02 May 2006 13:00:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 13:01:19 GMT]]></title><description><![CDATA[<p>Was ist denn die Fehlermeldung? (Dieselbe kann es nicht sein)</p>
<p>Sinn:<br />
accept erwartet einen Zeiger auf socklen_t, damit er die tatsächliche Länge der beschriebenen Adresse dort ablegen kann. Da accept nicht nur für IPv4 Sockets ist, muss das nicht zwangsläufig sizeof(struct sockaddr_in) sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049547</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 02 May 2006 13:01:19 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 13:07:19 GMT]]></title><description><![CDATA[<p>Danke für die Antworten! Jetzt tuts..</p>
<p>Idexe, wenn nicht weist wozu Code abschreiben gut ist, dann frag doch einfach ^^</p>
<p>Ich weiß z.B. nicht wozu man das Rad jeden Tag neu erfinden soll, du etwa??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049552</guid><dc:creator><![CDATA[Petommy]]></dc:creator><pubDate>Tue, 02 May 2006 13:07:19 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 13:10:55 GMT]]></title><description><![CDATA[<p>Naja egal. Aber Codeabschreiben finde ich ist keine Alternative zum &quot;Rad neu erfinden&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049554</guid><dc:creator><![CDATA[Idexe]]></dc:creator><pubDate>Tue, 02 May 2006 13:10:55 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso tut das nicht? on Tue, 02 May 2006 13:15:41 GMT]]></title><description><![CDATA[<p>Hättest du das ganze neu geschrieben, obwohl es im Interent fertige Vorlagen gibt??</p>
<p>Ich brauch eine kleine Client-Server-Anwendung, hab das ganze schon vor langer Zeit mal für was anderes gebraucht, jedoch jetzt nicht mehr gefunden.</p>
<p>Mein Lösungsvorschlag, Vorlage aus dem I-Net kopieren.</p>
<p>Und jetzt sag bloß du hättest einen anderen Vorschlag. *lol*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049559</guid><dc:creator><![CDATA[Petommy]]></dc:creator><pubDate>Tue, 02 May 2006 13:15:41 GMT</pubDate></item></channel></rss>