<?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[Fenster wird automatisch geschlossen, wenn Verbindung über Sockets hergestellt wird]]></title><description><![CDATA[<p>Ich hab hier einmal den Client:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#include &lt;windows.h&gt;
#include &lt;winsock2.h&gt;
#include &lt;vcl.h&gt;
#pragma hdrstop
#include &lt;iostream.h&gt;
#pragma argsused

//Prototypen

int startWinsock(void);

int main()

{

  long rc;
  SOCKET s;
  SOCKADDR_IN addr;

  char buf[256];                       // Anzahl Zeichen, die gesendet werden
  char conIP[15] = &quot;10.17.126.4&quot;;        // Ziel-IP Adresse
  int conPort = 12345;                   // Verwendeter Port

  memset(&amp;addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzen
  addr.sin_family=AF_INET;
  addr.sin_port=htons(conPort);        // htons() = Konvertierung für Netzwerk
  addr.sin_addr.s_addr=inet_addr(conIP);

  rc=startWinsock();

  if(rc!=0)
  {
    cout &lt;&lt; &quot;Fehler: startWinsock, Fehlercode: &quot; &lt;&lt; rc &lt;&lt; &quot;\n&quot;;
    return 1;
  }
  else
  {
    cout &lt;&lt; &quot;Winsock gestartet!\n&quot;;
  }

  s=socket(AF_INET,SOCK_STREAM,0);

  if(s==INVALID_SOCKET)
  {
    cout &lt;&lt; &quot;Fehler: Der Socket konnte nicht erstellt werden, Fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; &quot;\n&quot;;
    return 1;
  }
  else
  {
    cout &lt;&lt; &quot;Socket erstellt!\n&quot;;
  }

  rc=connect(s,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR));

  if(rc==SOCKET_ERROR)
  {
    cout &lt;&lt; &quot;Fehler: konnte nicht verbunden werden, Fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; &quot;\n&quot;;
  }
  else
  {
    cout &lt;&lt; &quot;Verbunden mit &quot; &lt;&lt; conIP &lt;&lt; &quot;\n&quot;;
    strcpy(buf,&quot;Hallo wie gehts?&quot;);

    rc=send(s,buf,9,0);

    if (rc == -1) cout &lt;&lt; &quot;Fehler: Nachricht konnte nicht gesendet werden, Fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; &quot;\n&quot;;
    else cout &lt;&lt; &quot;Nachricht wurde gesendet\n&quot;;

    rc=recv(s,buf,256,0);
    if (rc == -1) cout &lt;&lt; &quot;Fehler: Nachricht konnte nicht empfangen werden, Fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; &quot;\n&quot;;
    else cout &lt;&lt; &quot;Nachricht empfangen: &quot; &lt;&lt; rc &lt;&lt; &quot;\n&quot;;
  }

  getchar();
  return 0;
}

int startWinsock(void)
{
  WSADATA wsa;
  return WSAStartup(MAKEWORD(2,0),&amp;wsa);
}
</code></pre>
<p>und hier den Server</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;
#include &lt;winsock.h&gt;
#include &lt;vcl.h&gt;
#pragma hdrstop
#include &lt;iostream.h&gt;
#pragma argsused

//Prototypen

int startWinsock(void);

int main()

{
  long rc;
  SOCKET acceptSocket;
  SOCKET connectedSocket;
  SOCKADDR_IN addr;

  // char buf[256];                   // Anzahl Zeichen, die gesendet werden
  int conPort = 12345;                  // Port

  memset(&amp;addr,0,sizeof(SOCKADDR_IN));
  addr.sin_family=AF_INET;
  addr.sin_port=htons(conPort);
  addr.sin_addr.s_addr=INADDR_ANY;

  rc=startWinsock();

  if(rc!=0)
  {
    printf(&quot;Fehler: startWinsock, fehler code: %d\n&quot;,rc);
    return 1;
  }
  else
  {
    printf(&quot;Winsock gestartet!\n&quot;);
  }

  acceptSocket=socket(AF_INET,SOCK_STREAM,0);

  if(acceptSocket==INVALID_SOCKET)
  {
    printf(&quot;Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Socket erstellt!\n&quot;);
  }

  rc=bind(acceptSocket,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR_IN));

  if(rc==SOCKET_ERROR)
  {
    printf(&quot;Fehler: bind, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    cout &lt;&lt; &quot;Socket an Port &quot; &lt;&lt; conPort &lt;&lt; &quot; gebunden\n&quot;;
  }

  rc=listen(acceptSocket,10);

  if(rc==SOCKET_ERROR)
  {
    printf(&quot;Fehler: listen, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;acceptSocket ist im listen Modus....\n&quot;);
  }

  connectedSocket=accept(acceptSocket,NULL,NULL);

  if(connectedSocket==INVALID_SOCKET)
  {
    printf(&quot;Fehler: accept, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Neue Verbindung wurde akzeptiert!\n&quot;);
  }

  return 0;
}

int startWinsock(void)

{

  WSADATA wsa;

  return WSAStartup(MAKEWORD(2,0),&amp;wsa);

}
</code></pre>
<p>Wenn ich an dem einen PC jetzt den Server starte, so dass er im Listen Modus ist und auf dem andern den Client aufrufe, schließt sich das Server Fenster automatisch.<br />
Als Ausgabe kommt beim Client:</p>
<blockquote>
<p>Winsock gestartet!<br />
Socket erstellt!<br />
Verbunden mit 10.17.126.4<br />
Nachricht wurde gesendet<br />
Fehler: Nachricht konnte nicht empfangen werden, Fehlercode: 10054</p>
</blockquote>
<p>Aber wieso schließt sich das Fenster einfach?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142280/fenster-wird-automatisch-geschlossen-wenn-verbindung-über-sockets-hergestellt-wird</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 17:52:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142280.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Mar 2006 08:33:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fenster wird automatisch geschlossen, wenn Verbindung über Sockets hergestellt wird on Wed, 29 Mar 2006 08:33:22 GMT]]></title><description><![CDATA[<p>Ich hab hier einmal den Client:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#include &lt;windows.h&gt;
#include &lt;winsock2.h&gt;
#include &lt;vcl.h&gt;
#pragma hdrstop
#include &lt;iostream.h&gt;
#pragma argsused

//Prototypen

int startWinsock(void);

int main()

{

  long rc;
  SOCKET s;
  SOCKADDR_IN addr;

  char buf[256];                       // Anzahl Zeichen, die gesendet werden
  char conIP[15] = &quot;10.17.126.4&quot;;        // Ziel-IP Adresse
  int conPort = 12345;                   // Verwendeter Port

  memset(&amp;addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzen
  addr.sin_family=AF_INET;
  addr.sin_port=htons(conPort);        // htons() = Konvertierung für Netzwerk
  addr.sin_addr.s_addr=inet_addr(conIP);

  rc=startWinsock();

  if(rc!=0)
  {
    cout &lt;&lt; &quot;Fehler: startWinsock, Fehlercode: &quot; &lt;&lt; rc &lt;&lt; &quot;\n&quot;;
    return 1;
  }
  else
  {
    cout &lt;&lt; &quot;Winsock gestartet!\n&quot;;
  }

  s=socket(AF_INET,SOCK_STREAM,0);

  if(s==INVALID_SOCKET)
  {
    cout &lt;&lt; &quot;Fehler: Der Socket konnte nicht erstellt werden, Fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; &quot;\n&quot;;
    return 1;
  }
  else
  {
    cout &lt;&lt; &quot;Socket erstellt!\n&quot;;
  }

  rc=connect(s,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR));

  if(rc==SOCKET_ERROR)
  {
    cout &lt;&lt; &quot;Fehler: konnte nicht verbunden werden, Fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; &quot;\n&quot;;
  }
  else
  {
    cout &lt;&lt; &quot;Verbunden mit &quot; &lt;&lt; conIP &lt;&lt; &quot;\n&quot;;
    strcpy(buf,&quot;Hallo wie gehts?&quot;);

    rc=send(s,buf,9,0);

    if (rc == -1) cout &lt;&lt; &quot;Fehler: Nachricht konnte nicht gesendet werden, Fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; &quot;\n&quot;;
    else cout &lt;&lt; &quot;Nachricht wurde gesendet\n&quot;;

    rc=recv(s,buf,256,0);
    if (rc == -1) cout &lt;&lt; &quot;Fehler: Nachricht konnte nicht empfangen werden, Fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; &quot;\n&quot;;
    else cout &lt;&lt; &quot;Nachricht empfangen: &quot; &lt;&lt; rc &lt;&lt; &quot;\n&quot;;
  }

  getchar();
  return 0;
}

int startWinsock(void)
{
  WSADATA wsa;
  return WSAStartup(MAKEWORD(2,0),&amp;wsa);
}
</code></pre>
<p>und hier den Server</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;
#include &lt;winsock.h&gt;
#include &lt;vcl.h&gt;
#pragma hdrstop
#include &lt;iostream.h&gt;
#pragma argsused

//Prototypen

int startWinsock(void);

int main()

{
  long rc;
  SOCKET acceptSocket;
  SOCKET connectedSocket;
  SOCKADDR_IN addr;

  // char buf[256];                   // Anzahl Zeichen, die gesendet werden
  int conPort = 12345;                  // Port

  memset(&amp;addr,0,sizeof(SOCKADDR_IN));
  addr.sin_family=AF_INET;
  addr.sin_port=htons(conPort);
  addr.sin_addr.s_addr=INADDR_ANY;

  rc=startWinsock();

  if(rc!=0)
  {
    printf(&quot;Fehler: startWinsock, fehler code: %d\n&quot;,rc);
    return 1;
  }
  else
  {
    printf(&quot;Winsock gestartet!\n&quot;);
  }

  acceptSocket=socket(AF_INET,SOCK_STREAM,0);

  if(acceptSocket==INVALID_SOCKET)
  {
    printf(&quot;Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Socket erstellt!\n&quot;);
  }

  rc=bind(acceptSocket,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR_IN));

  if(rc==SOCKET_ERROR)
  {
    printf(&quot;Fehler: bind, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    cout &lt;&lt; &quot;Socket an Port &quot; &lt;&lt; conPort &lt;&lt; &quot; gebunden\n&quot;;
  }

  rc=listen(acceptSocket,10);

  if(rc==SOCKET_ERROR)
  {
    printf(&quot;Fehler: listen, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;acceptSocket ist im listen Modus....\n&quot;);
  }

  connectedSocket=accept(acceptSocket,NULL,NULL);

  if(connectedSocket==INVALID_SOCKET)
  {
    printf(&quot;Fehler: accept, fehler code: %d\n&quot;,WSAGetLastError());
    return 1;
  }
  else
  {
    printf(&quot;Neue Verbindung wurde akzeptiert!\n&quot;);
  }

  return 0;
}

int startWinsock(void)

{

  WSADATA wsa;

  return WSAStartup(MAKEWORD(2,0),&amp;wsa);

}
</code></pre>
<p>Wenn ich an dem einen PC jetzt den Server starte, so dass er im Listen Modus ist und auf dem andern den Client aufrufe, schließt sich das Server Fenster automatisch.<br />
Als Ausgabe kommt beim Client:</p>
<blockquote>
<p>Winsock gestartet!<br />
Socket erstellt!<br />
Verbunden mit 10.17.126.4<br />
Nachricht wurde gesendet<br />
Fehler: Nachricht konnte nicht empfangen werden, Fehlercode: 10054</p>
</blockquote>
<p>Aber wieso schließt sich das Fenster einfach?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026194</guid><dc:creator><![CDATA[Abrow]]></dc:creator><pubDate>Wed, 29 Mar 2006 08:33:22 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster wird automatisch geschlossen, wenn Verbindung über Sockets hergestellt wird on Wed, 29 Mar 2006 09:25:34 GMT]]></title><description><![CDATA[<p>vielleicht sollte dein server dann auch einfach warten wenn er ne neue Verbindung bekommt und net einfach beenden <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>
<pre><code class="language-cpp">}
  else
  {
    printf(&quot;Neue Verbindung wurde akzeptiert!\n&quot;);
  }

  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1026239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026239</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Wed, 29 Mar 2006 09:25:34 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster wird automatisch geschlossen, wenn Verbindung über Sockets hergestellt wird on Wed, 29 Mar 2006 13:38:45 GMT]]></title><description><![CDATA[<p>lol, wie schlecht, in dem fall sry für sinnlos post ^^<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <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/1026497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026497</guid><dc:creator><![CDATA[Abrow]]></dc:creator><pubDate>Wed, 29 Mar 2006 13:38:45 GMT</pubDate></item></channel></rss>