<?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[Verständnisproblem bei Struktur]]></title><description><![CDATA[<pre><code class="language-cpp">sockaddr_in sin;
sin.sin_port=htons(12345);
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_family=AF_INET;
</code></pre>
<p>Dieser Code-Schnipsel ist von einem Winsock-Programm kopiert. Dort steht, dass das eine Struktur sein soll. Allerdings kenne ich das so, dass Strukturen mit <code>struct</code> eingeleitet werden. Wie kann das eine Struktur sein?<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p><strong>Hier das Programm:</strong></p>
<pre><code class="language-cpp">#include &lt;windows.h&gt; //Required for socket init
#include &lt;iostream&gt;
using namespace std;

//server
int main()
{

char buf2[]=&quot;test&quot;;
long rc;
SOCKET kSock;
SOCKET client;
int len;

char buf[256]=&quot;&quot;;

WSAData wsdata;
WORD wsver=MAKEWORD(2, 0); //We want Winsock 2.0
int nret=WSAStartup(wsver, &amp;wsdata); //Pass version 2.0 and pointer to implement

        if(nret != 0)
        {
        cout&lt;&lt;&quot;Startup failed, error code: &quot;&lt;&lt;WSAGetLastError();
        WSACleanup();
        return -1;
        }

cout&lt;&lt;&quot;Init success\n&quot;;
kSock=socket(AF_INET, SOCK_STREAM, 0);

        if(kSock == INVALID_SOCKET)
        {
        cout&lt;&lt;&quot;Socket init failed&quot;;
        return -1;
        }

cout&lt;&lt;&quot;Socket initialized\n&quot;;
sockaddr_in sin;
sin.sin_port=htons(12345);
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_family=AF_INET;

        if(bind(kSock,(sockaddr*)&amp;sin, sizeof(sin)) == SOCKET_ERROR)
        {
        cout&lt;&lt;&quot;Failed to bind\n&quot;;
        WSACleanup();
        return -1;
        }

cout&lt;&lt;&quot;Bind successful!\n&quot;;

  rc=listen(kSock,10);

  if(rc==SOCKET_ERROR)
  {
        cout&lt;&lt;&quot;Error &quot;&lt;&lt;GetLastError();
    system(&quot;PAUSE&quot;);
    return 0;
  }

  else
  {
    cout&lt;&lt;&quot;acceptSocket ist im listen Modus....\n&quot;;
  }

    // Verbindung annehmen
     client=accept(kSock,NULL,NULL);

    if(client==INVALID_SOCKET)
        {
        cout&lt;&lt;&quot;Fehler: accept, fehler code: &lt;&lt;&quot;&lt;&lt;WSAGetLastError();
    return 1;
    }

     cout&lt;&lt;&quot;Neue Verbindung wurde akzeptiert!\n&quot;;

   // Daten austauschen
  while(rc!=SOCKET_ERROR)
  {

                       send(client,buf2,strlen(buf2),0);
                       rc=recv(client,buf,256,0);

                if(rc==0)
                {
                    cout&lt;&lt;&quot;Server hat die Verbindung getrennt..\n&quot;;
                    system(&quot;PAUSE&quot;);
                    return 0;
                 }

            if(rc==SOCKET_ERROR)
                {
              cout&lt;&lt;&quot;Fehler: recv, fehler code: &quot;&lt;&lt;WSAGetLastError();
              break;
                   }

        cout&lt;&lt;&quot;Client sendet: &quot;&lt;&lt;system(buf);
                cout&lt;&lt;&quot;\n&quot;;

  }

closesocket(client); //Close both socket handles
closesocket(kSock);
WSACleanup();
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/241320/verständnisproblem-bei-struktur</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 16:24:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/241320.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 May 2009 02:10:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verständnisproblem bei Struktur on Tue, 19 May 2009 02:10:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">sockaddr_in sin;
sin.sin_port=htons(12345);
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_family=AF_INET;
</code></pre>
<p>Dieser Code-Schnipsel ist von einem Winsock-Programm kopiert. Dort steht, dass das eine Struktur sein soll. Allerdings kenne ich das so, dass Strukturen mit <code>struct</code> eingeleitet werden. Wie kann das eine Struktur sein?<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p><strong>Hier das Programm:</strong></p>
<pre><code class="language-cpp">#include &lt;windows.h&gt; //Required for socket init
#include &lt;iostream&gt;
using namespace std;

//server
int main()
{

char buf2[]=&quot;test&quot;;
long rc;
SOCKET kSock;
SOCKET client;
int len;

char buf[256]=&quot;&quot;;

WSAData wsdata;
WORD wsver=MAKEWORD(2, 0); //We want Winsock 2.0
int nret=WSAStartup(wsver, &amp;wsdata); //Pass version 2.0 and pointer to implement

        if(nret != 0)
        {
        cout&lt;&lt;&quot;Startup failed, error code: &quot;&lt;&lt;WSAGetLastError();
        WSACleanup();
        return -1;
        }

cout&lt;&lt;&quot;Init success\n&quot;;
kSock=socket(AF_INET, SOCK_STREAM, 0);

        if(kSock == INVALID_SOCKET)
        {
        cout&lt;&lt;&quot;Socket init failed&quot;;
        return -1;
        }

cout&lt;&lt;&quot;Socket initialized\n&quot;;
sockaddr_in sin;
sin.sin_port=htons(12345);
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_family=AF_INET;

        if(bind(kSock,(sockaddr*)&amp;sin, sizeof(sin)) == SOCKET_ERROR)
        {
        cout&lt;&lt;&quot;Failed to bind\n&quot;;
        WSACleanup();
        return -1;
        }

cout&lt;&lt;&quot;Bind successful!\n&quot;;

  rc=listen(kSock,10);

  if(rc==SOCKET_ERROR)
  {
        cout&lt;&lt;&quot;Error &quot;&lt;&lt;GetLastError();
    system(&quot;PAUSE&quot;);
    return 0;
  }

  else
  {
    cout&lt;&lt;&quot;acceptSocket ist im listen Modus....\n&quot;;
  }

    // Verbindung annehmen
     client=accept(kSock,NULL,NULL);

    if(client==INVALID_SOCKET)
        {
        cout&lt;&lt;&quot;Fehler: accept, fehler code: &lt;&lt;&quot;&lt;&lt;WSAGetLastError();
    return 1;
    }

     cout&lt;&lt;&quot;Neue Verbindung wurde akzeptiert!\n&quot;;

   // Daten austauschen
  while(rc!=SOCKET_ERROR)
  {

                       send(client,buf2,strlen(buf2),0);
                       rc=recv(client,buf,256,0);

                if(rc==0)
                {
                    cout&lt;&lt;&quot;Server hat die Verbindung getrennt..\n&quot;;
                    system(&quot;PAUSE&quot;);
                    return 0;
                 }

            if(rc==SOCKET_ERROR)
                {
              cout&lt;&lt;&quot;Fehler: recv, fehler code: &quot;&lt;&lt;WSAGetLastError();
              break;
                   }

        cout&lt;&lt;&quot;Client sendet: &quot;&lt;&lt;system(buf);
                cout&lt;&lt;&quot;\n&quot;;

  }

closesocket(client); //Close both socket handles
closesocket(kSock);
WSACleanup();
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1712545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1712545</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Tue, 19 May 2009 02:10:17 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem bei Struktur on Tue, 19 May 2009 05:37:15 GMT]]></title><description><![CDATA[<p>skullyan schrieb:</p>
<blockquote>
<p>Allerdings kenne ich das so, dass Strukturen mit <code>struct</code> eingeleitet werden. Wie kann das eine Struktur sein?<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Also ich sehe das auch so, dass Struturen mit struct anfangen. Aber wenn du die allgemeine Definition von Strukturen kennst, also:</p>
<p>Strukturen sind eine Zusammenfassung mehrerer Datentypen oder Definitionen.</p>
<p>Dann kannst du das auch sicher irwie herleiten.</p>
<p>best rgds<br />
Agahan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1712559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1712559</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 19 May 2009 05:37:15 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem bei Struktur on Tue, 19 May 2009 05:49:15 GMT]]></title><description><![CDATA[<p>skullyan schrieb:</p>
<blockquote>
<p>Allerdings kenne ich das so, dass Strukturen mit <code>struct</code> eingeleitet werden. Wie kann das eine Struktur sein?</p>
</blockquote>
<p>Das Programm ist in C++, nicht C. In C++ kann man das struct beim Deklarieren einer Struktur weglassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1712563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1712563</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 19 May 2009 05:49:15 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem bei Struktur on Tue, 19 May 2009 09:36:24 GMT]]></title><description><![CDATA[<p>Und selbst in C könnte man mit</p>
<pre><code class="language-cpp">typedef struct
{
    ...
} moep;
</code></pre>
<p>Das ganze auch über <em>moep</em> ansprechbar machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1712674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1712674</guid><dc:creator><![CDATA[Skalli]]></dc:creator><pubDate>Tue, 19 May 2009 09:36:24 GMT</pubDate></item></channel></rss>