<?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[recvfrom schlägt fehl]]></title><description><![CDATA[<pre><code class="language-cpp">WSADATA wsa;
  SOCKADDR_IN addr;
  if( WSAStartup(MAKEWORD(2,0),&amp;wsa) != 0 )
    throw ((std::string)&quot;Winsock start failed&quot;);
  Sock = socket(AF_INET,SOCK_DGRAM,0);
  if(Sock==INVALID_SOCKET)
    throw ((std::string)&quot;Socket couldn't be created&quot;);
  addr.sin_family=AF_INET;
  addr.sin_port=htons(Port);
  addr.sin_addr.s_addr=ADDR_ANY; // def in winsock2.h   #define ADDR_ANY                INADDR_ANY
  if(bind(Sock,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR_IN))==SOCKET_ERROR)
    throw ((std::string)&quot;Couldn't bind socket, programm may already be running&quot;);
</code></pre>
<p>so wird der socket erstmal erstellt, soll UDP werden.<br />
Funktioniert auch.</p>
<pre><code class="language-cpp">Packet Pac;
  std::fill(reinterpret_cast &lt; char* &gt;(&amp;Pac), reinterpret_cast &lt; char* &gt;(&amp;Pac) + sizeof(Packet), 0);
  Client nClient;
  std::fill(reinterpret_cast &lt; char* &gt;(&amp;nClient), reinterpret_cast &lt; char* &gt;(&amp;nClient) + sizeof(Client), 0);
  while ( true ){
    SOCKADDR_IN *saClient = new SOCKADDR_IN;
    if ( recvfrom( Object-&gt;Sock, reinterpret_cast &lt; char* &gt;(&amp;Pac), sizeof(Packet), 0, (SOCKADDR*)saClient, NULL) == SOCKET_ERROR )
      throw ((std::string)&quot;recvfrom failed&quot;);
</code></pre>
<p>aber hier schlägt es dann sofort nach dem aufruf fehl.<br />
Socket stimmt... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>wäre nett wenn ihr da ne idee hättet</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/232409/recvfrom-schlägt-fehl</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 13:14:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/232409.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Jan 2009 15:07:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to recvfrom schlägt fehl on Thu, 22 Jan 2009 15:11:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">WSADATA wsa;
  SOCKADDR_IN addr;
  if( WSAStartup(MAKEWORD(2,0),&amp;wsa) != 0 )
    throw ((std::string)&quot;Winsock start failed&quot;);
  Sock = socket(AF_INET,SOCK_DGRAM,0);
  if(Sock==INVALID_SOCKET)
    throw ((std::string)&quot;Socket couldn't be created&quot;);
  addr.sin_family=AF_INET;
  addr.sin_port=htons(Port);
  addr.sin_addr.s_addr=ADDR_ANY; // def in winsock2.h   #define ADDR_ANY                INADDR_ANY
  if(bind(Sock,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR_IN))==SOCKET_ERROR)
    throw ((std::string)&quot;Couldn't bind socket, programm may already be running&quot;);
</code></pre>
<p>so wird der socket erstmal erstellt, soll UDP werden.<br />
Funktioniert auch.</p>
<pre><code class="language-cpp">Packet Pac;
  std::fill(reinterpret_cast &lt; char* &gt;(&amp;Pac), reinterpret_cast &lt; char* &gt;(&amp;Pac) + sizeof(Packet), 0);
  Client nClient;
  std::fill(reinterpret_cast &lt; char* &gt;(&amp;nClient), reinterpret_cast &lt; char* &gt;(&amp;nClient) + sizeof(Client), 0);
  while ( true ){
    SOCKADDR_IN *saClient = new SOCKADDR_IN;
    if ( recvfrom( Object-&gt;Sock, reinterpret_cast &lt; char* &gt;(&amp;Pac), sizeof(Packet), 0, (SOCKADDR*)saClient, NULL) == SOCKET_ERROR )
      throw ((std::string)&quot;recvfrom failed&quot;);
</code></pre>
<p>aber hier schlägt es dann sofort nach dem aufruf fehl.<br />
Socket stimmt... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>wäre nett wenn ihr da ne idee hättet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650288</guid><dc:creator><![CDATA[Schurke]]></dc:creator><pubDate>Thu, 22 Jan 2009 15:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to recvfrom schlägt fehl on Thu, 22 Jan 2009 15:20:50 GMT]]></title><description><![CDATA[<p>unter windows gibt es da die nette funktion <a href="http://msdn.microsoft.com/en-us/library/ms741580(VS.85).aspx" rel="nofollow">WSAGetLastError</a><br />
außerdem fällt mir auf das der letzte parameter der funktion 0 ist. der gibt<br />
aber die größe der struktur an. versuch da mal &quot;sizeof(saClient)&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650300</guid><dc:creator><![CDATA[helferlein]]></dc:creator><pubDate>Thu, 22 Jan 2009 15:20:50 GMT</pubDate></item><item><title><![CDATA[Reply to recvfrom schlägt fehl on Thu, 22 Jan 2009 15:31:05 GMT]]></title><description><![CDATA[<p>Hab mal int saSize = sizeof(SOCKADDR_IN); und in den letzten parameter &amp;saSize,</p>
<p>geht...</p>
<p>der letzte sollte aber eigentlich optional sein, nach msdn..</p>
<p>aber anscheinend doch benötigt. danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650312</guid><dc:creator><![CDATA[Schurke]]></dc:creator><pubDate>Thu, 22 Jan 2009 15:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to recvfrom schlägt fehl on Thu, 22 Jan 2009 15:41:18 GMT]]></title><description><![CDATA[<p>ist optional aber nur wenn der zeiger auf die auszufüllende struktur auch 0 ist.<br />
wie soll die funktion einen bereich ausfüllen wenn sie nicht weiß wie groß dieser<br />
ist <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/1650326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650326</guid><dc:creator><![CDATA[helferlein]]></dc:creator><pubDate>Thu, 22 Jan 2009 15:41:18 GMT</pubDate></item><item><title><![CDATA[Reply to recvfrom schlägt fehl on Thu, 22 Jan 2009 16:00:14 GMT]]></title><description><![CDATA[<p>macht sinn...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650343</guid><dc:creator><![CDATA[Schurke]]></dc:creator><pubDate>Thu, 22 Jan 2009 16:00:14 GMT</pubDate></item></channel></rss>