<?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[Konvertierung von SOCKADDR in SOCKADDR_IN so richtig?]]></title><description><![CDATA[<p>Hi,</p>
<p>wie der Titel schon sagt will ich eine SOCKADDR-Instanz in eine SOCKADDR_IN-Instanz umwandeln. Ich hab bisher nie mit memset &amp; co. gearbeitet. Deshalb weis ich auch nicht ob das so richtig ist. Ich will ja auch nichts falsches im Speicher überschreiben.</p>
<pre><code class="language-cpp">SOCKADDR otherAdress;   //bekommt irgendwann wert von accept() zugewiesen
SOCKADDR_IN addr;       //soll wert von otherAdress bekommen

//irgendwann im quellcode

::memcpy(&amp;addr, &amp;otherAdress, sizeof(SOCKADDR));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/174645/konvertierung-von-sockaddr-in-sockaddr_in-so-richtig</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 15:31:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174645.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Mar 2007 14:13:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konvertierung von SOCKADDR in SOCKADDR_IN so richtig? on Thu, 01 Mar 2007 14:13:09 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wie der Titel schon sagt will ich eine SOCKADDR-Instanz in eine SOCKADDR_IN-Instanz umwandeln. Ich hab bisher nie mit memset &amp; co. gearbeitet. Deshalb weis ich auch nicht ob das so richtig ist. Ich will ja auch nichts falsches im Speicher überschreiben.</p>
<pre><code class="language-cpp">SOCKADDR otherAdress;   //bekommt irgendwann wert von accept() zugewiesen
SOCKADDR_IN addr;       //soll wert von otherAdress bekommen

//irgendwann im quellcode

::memcpy(&amp;addr, &amp;otherAdress, sizeof(SOCKADDR));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1237496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237496</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Thu, 01 Mar 2007 14:13:09 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierung von SOCKADDR in SOCKADDR_IN so richtig? on Thu, 01 Mar 2007 14:18:25 GMT]]></title><description><![CDATA[<p>die sind alle gleichgroß, ein simples cast ala SOCKADDR_IN s; (SOCKADDR)s; sollte es auch tun .... in der annahme das du das auf ein bind oder sowas anweden willst</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237502</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Thu, 01 Mar 2007 14:18:25 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierung von SOCKADDR in SOCKADDR_IN so richtig? on Thu, 01 Mar 2007 14:35:18 GMT]]></title><description><![CDATA[<p>Ich möchte eigentlich keinen C-Cast verwenden (dann doch lieber static-, dynamic- oder reinterpret_cast welche ja leider nicht funktionieren).</p>
<p>Ich brauche das ganze für eine eigene Address-Klasse</p>
<pre><code class="language-cpp">// kurzform
class Address
{
public:
  SOCKADDR_IN* Get() 
  {
    return &amp;m_addr;
  };
  bool operator = (SOCKADDR&amp; otherAdress)
  {
    ::memcpy(&amp;m_addr, &amp;otherAdress, sizeof(SOCKADDR));
    return true;  //sinnlos, ich weis :)
  };

protected:
  SOCKADDR_IN m_addr;
}
</code></pre>
<p>Wenn ich später Daten von einem Socket empfange, dann kann ich so die Adresse des Clients in meine Klasse übernehmen.</p>
<pre><code class="language-cpp">Address  ClientAddress;
SOCKET   sock;    //create und bind überspringe ich mir mal
SOCKADDR addr;
int      addressLenght = 0;

listen(sock,1);

SOCKET newSock = accept(sock, &amp;addr, &amp;addressLenght);

ClientAddress = addr;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1237523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237523</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Thu, 01 Mar 2007 14:35:18 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierung von SOCKADDR in SOCKADDR_IN so richtig? on Fri, 02 Mar 2007 07:46:57 GMT]]></title><description><![CDATA[<p>Wieso sollten die Casts nicht funktionieren? Für deine Zwecke ist reinterpret_cast genau der richtige Kandidat:</p>
<pre><code class="language-cpp">m_adr = * reinterpret_cast&lt;SOCKADR_IN*&gt;(&amp;otherAdress);
</code></pre>
<p>(übrigens sollte der op= lieber das zugewisene Objekt (*this) per Referenz zurückgeben - damit kannst du dann Zuweisungsketten ala <code>ad1=ad2=meine_adresse;</code> verwenden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237857</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 02 Mar 2007 07:46:57 GMT</pubDate></item></channel></rss>