<?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[bind()-Problem]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich bin gerade dabei mir eine Socketklasse zu schreiben, jedoch habe ich irgendeinen Fehler bei der Anwendung der bind()-Methode.<br />
In meiner Methode ListenToClient() funktioniert der Aufruf nicht, kopiere ich allerdings das komplett in meinen Konstruktor, klappt es bestens.</p>
<p>Könnt ihr mir sagen, woran das liegt ?<br />
Vielen Dank für die Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">class csocket
{
private:
	void socketError(CString str,bool exitApp=true);

	WSADATA wsaData;       // Socket instance
    SOCKET server,client;  // Socket file descriptor
	SOCKADDR_IN sInfo;	   // SOCKADDR_IN struct
	LPHOSTENT hostEntry;   // host

public:
	csocket(int port, CString host);
	~csocket(void);
	void ListenToClient();
};

csocket::csocket(int port, CString host)
{
	//initialize socket
	if(WSAStartup(0x101, &amp;wsaData) == SOCKET_ERROR)
	{
		socketError(&quot;Socketinitialization failed&quot;);
	}

	//create socket
	if ((server=socket(AF_INET,SOCK_STREAM, IPPROTO_TCP)) == SOCKET_ERROR)
	{
		socketError(&quot;Socketcreation failed&quot;);
	}

	//store information about the server
	if(inet_addr(host)==INADDR_NONE)//is it a DNS
	{
	    hostEntry=gethostbyname(host);
	}
	else //or an IP
	{
	    int addr=inet_addr(host);
	    hostEntry=gethostbyaddr((char*)&amp;addr,sizeof(addr),AF_INET);
	}
	if(!hostEntry)
	{
		socketError(&quot;Invalid Host&quot;);
	}

	//fill the sockaddr_in struct
	sInfo.sin_family = PF_INET;
    sInfo.sin_port = htons(port);
    sInfo.sin_addr = *((LPIN_ADDR)*hostEntry-&gt;h_addr_list);
}

csocket::~csocket(void)
{
	WSACleanup();
}

void csocket::socketError(CString str,bool exitApp)
{
	MessageBox(NULL, str, &quot;SOCKET ERROR&quot;, MB_OK);
	if(exitApp)exit(0); 
}

void csocket::ListenToClient()
{
	//sin_port nach CString wandeln
	CString strport;
	strport.Format(&quot;%d&quot;, ntohs(sInfo.sin_port));

	//bind the socket
	if(bind(server,(LPSOCKADDR)&amp;sInfo,sizeof(sInfo)) == SOCKET_ERROR)
	{
		socketError(&quot;Can't bind the Socket&quot;);
	}

	//get socket to listen 
    if(listen(server, 2) == SOCKET_ERROR)
	{
		socketError(&quot;Can't listen on Port &quot;+strport);
	}
	socketError(&quot;Listening on Port &quot;+strport,false);

	//wait for a client
	if(accept(server, NULL,NULL) == INVALID_SOCKET)
	{
		socketError(&quot;Can't accept Client&quot;);
	}
	while(true)
	{
	  break;
 	}
	closesocket(server);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/84232/bind-problem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 15:52:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/84232.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Aug 2004 09:32:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to bind()-Problem on Sat, 28 Aug 2004 09:32:34 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich bin gerade dabei mir eine Socketklasse zu schreiben, jedoch habe ich irgendeinen Fehler bei der Anwendung der bind()-Methode.<br />
In meiner Methode ListenToClient() funktioniert der Aufruf nicht, kopiere ich allerdings das komplett in meinen Konstruktor, klappt es bestens.</p>
<p>Könnt ihr mir sagen, woran das liegt ?<br />
Vielen Dank für die Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">class csocket
{
private:
	void socketError(CString str,bool exitApp=true);

	WSADATA wsaData;       // Socket instance
    SOCKET server,client;  // Socket file descriptor
	SOCKADDR_IN sInfo;	   // SOCKADDR_IN struct
	LPHOSTENT hostEntry;   // host

public:
	csocket(int port, CString host);
	~csocket(void);
	void ListenToClient();
};

csocket::csocket(int port, CString host)
{
	//initialize socket
	if(WSAStartup(0x101, &amp;wsaData) == SOCKET_ERROR)
	{
		socketError(&quot;Socketinitialization failed&quot;);
	}

	//create socket
	if ((server=socket(AF_INET,SOCK_STREAM, IPPROTO_TCP)) == SOCKET_ERROR)
	{
		socketError(&quot;Socketcreation failed&quot;);
	}

	//store information about the server
	if(inet_addr(host)==INADDR_NONE)//is it a DNS
	{
	    hostEntry=gethostbyname(host);
	}
	else //or an IP
	{
	    int addr=inet_addr(host);
	    hostEntry=gethostbyaddr((char*)&amp;addr,sizeof(addr),AF_INET);
	}
	if(!hostEntry)
	{
		socketError(&quot;Invalid Host&quot;);
	}

	//fill the sockaddr_in struct
	sInfo.sin_family = PF_INET;
    sInfo.sin_port = htons(port);
    sInfo.sin_addr = *((LPIN_ADDR)*hostEntry-&gt;h_addr_list);
}

csocket::~csocket(void)
{
	WSACleanup();
}

void csocket::socketError(CString str,bool exitApp)
{
	MessageBox(NULL, str, &quot;SOCKET ERROR&quot;, MB_OK);
	if(exitApp)exit(0); 
}

void csocket::ListenToClient()
{
	//sin_port nach CString wandeln
	CString strport;
	strport.Format(&quot;%d&quot;, ntohs(sInfo.sin_port));

	//bind the socket
	if(bind(server,(LPSOCKADDR)&amp;sInfo,sizeof(sInfo)) == SOCKET_ERROR)
	{
		socketError(&quot;Can't bind the Socket&quot;);
	}

	//get socket to listen 
    if(listen(server, 2) == SOCKET_ERROR)
	{
		socketError(&quot;Can't listen on Port &quot;+strport);
	}
	socketError(&quot;Listening on Port &quot;+strport,false);

	//wait for a client
	if(accept(server, NULL,NULL) == INVALID_SOCKET)
	{
		socketError(&quot;Can't accept Client&quot;);
	}
	while(true)
	{
	  break;
 	}
	closesocket(server);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/593658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/593658</guid><dc:creator><![CDATA[simonch]]></dc:creator><pubDate>Sat, 28 Aug 2004 09:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to bind()-Problem on Sat, 28 Aug 2004 09:52:34 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=403" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/593664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/593664</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sat, 28 Aug 2004 09:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to bind()-Problem on Sat, 28 Aug 2004 10:00:31 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>was funktioniert denn nicht? Wie verhaelt sich das Programm? Kommt bind() mit<br />
einem Fehler zurueck?</p>
<p>mfg<br />
v R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/593668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/593668</guid><dc:creator><![CDATA[virtuell Realisticer]]></dc:creator><pubDate>Sat, 28 Aug 2004 10:00:31 GMT</pubDate></item><item><title><![CDATA[Reply to bind()-Problem on Sat, 28 Aug 2004 10:14:02 GMT]]></title><description><![CDATA[<p>also wenn ich den Teil in meinen Konstruktor kopiere, funktioniert alles bestens.<br />
Jedoch beim Aufruf aus der ListenToClient()-Methode, erhalte ich meine Fehlermeldung &quot;Can't bind the Socket&quot;...<br />
<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>
<pre><code class="language-cpp">//bind the socket
    if(bind(server,(LPSOCKADDR)&amp;sInfo,sizeof(sInfo)) == SOCKET_ERROR)
    {
        socketError(&quot;Can't bind the Socket&quot;);
    }

    //get socket to listen 
    if(listen(server, 2) == SOCKET_ERROR)
    {
        socketError(&quot;Can't listen on Port &quot;+strport);
    }
    socketError(&quot;Listening on Port &quot;+strport,false);

    //wait for a client
    if(accept(server, NULL,NULL) == INVALID_SOCKET)
    {
        socketError(&quot;Can't accept Client&quot;);
    }
    while(true)
    {
      break;
     }
    closesocket(server);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/593680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/593680</guid><dc:creator><![CDATA[simonch]]></dc:creator><pubDate>Sat, 28 Aug 2004 10:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to bind()-Problem on Sat, 28 Aug 2004 11:50:53 GMT]]></title><description><![CDATA[<p>hab jetzt mal alles aus dem Konstruktor in ne eigene Methode ausgelagert und nun klappts auch mit dem Nachbarn <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>
<p>Hat irgendwer dafür ne Erklärung ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/593728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/593728</guid><dc:creator><![CDATA[simonch]]></dc:creator><pubDate>Sat, 28 Aug 2004 11:50:53 GMT</pubDate></item><item><title><![CDATA[Reply to bind()-Problem on Sun, 29 Aug 2004 11:14:54 GMT]]></title><description><![CDATA[<p>was gibt WSAGetLastError() für eine Nummer zurück?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/594378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/594378</guid><dc:creator><![CDATA[ScriptGod]]></dc:creator><pubDate>Sun, 29 Aug 2004 11:14:54 GMT</pubDate></item></channel></rss>