<?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[recv() Funktion]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab ein Problem mit recv()...</p>
<p>Und zwar bekomm ich nix zurück. Vielleicht sieht jemand von euch den Fehler:</p>
<p>Beim Fenster erstellen:</p>
<pre><code class="language-cpp">WSAStartup(MAKEWORD(2,0),&amp;wsa);
s = socket(PF_INET,SOCK_STREAM,0);

//*** fill srv ***//
//empty srv
memset(&amp;srv, 0, sizeof(srv));
//check if ipaddress is a address or dns string
if (inet_addr(IPAddress) == INADDR_NONE)
{
	dnsip = gethostbyname(IPAddress);
	if (dnsip)
		memcpy(&amp;srv.sin_addr, dnsip-&gt;h_addr_list[0], sizeof(dnsip));
	else
		return 0;
}
else
{
	srv.sin_addr.s_addr = inet_addr(IPAddress);
}
srv.sin_port = htons(iPort);
srv.sin_family = AF_INET;

closesocket(s);
WSACleanup();
</code></pre>
<p>Beim connect:</p>
<pre><code class="language-cpp">int	iError_connect;
int	iError_send;
int	recvbytes = 1;
int	iError_recive = 0;
char recvbuf[64];

//*** create socket ***//
WSAStartup(MAKEWORD(2,0),&amp;wsa);
s = socket(PF_INET,SOCK_STREAM,0);

//*** set timeout 1 sec ***//
int lenght = 1;
setsockopt(s,SOL_SOCKET,SO_RCVTIMEO,(const char*)&amp;lenght,sizeof(lenght));

//*** connect to server ***//
iError_connect = connect(s,(struct sockaddr*) &amp;srv, sizeof(srv));

//*** send request ***//
iError_send = send (s, cRequest, strlen(cRequest), 0);

//*** get recive ***//
do
{ 
	recvbytes = recv(s, recvbuf, sizeof(recvbuf), 0);
	if (recvbytes &gt; 0)
		iError_recive++;
} while(recvbytes &gt; 0);

closesocket(s);
WSACleanup();
</code></pre>
<p>iPort ist 8080<br />
IPAddress ist 10.101.1.223<br />
cRequest ist GET <a href="http://10.101.1.223/index.html" rel="nofollow">http://10.101.1.223/index.html</a> HTTP/1.0\nHost: 10.101.1.223\n\n</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/71911/recv-funktion</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 20:24:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/71911.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Apr 2004 07:30:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to recv() Funktion on Fri, 23 Apr 2004 07:30:25 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab ein Problem mit recv()...</p>
<p>Und zwar bekomm ich nix zurück. Vielleicht sieht jemand von euch den Fehler:</p>
<p>Beim Fenster erstellen:</p>
<pre><code class="language-cpp">WSAStartup(MAKEWORD(2,0),&amp;wsa);
s = socket(PF_INET,SOCK_STREAM,0);

//*** fill srv ***//
//empty srv
memset(&amp;srv, 0, sizeof(srv));
//check if ipaddress is a address or dns string
if (inet_addr(IPAddress) == INADDR_NONE)
{
	dnsip = gethostbyname(IPAddress);
	if (dnsip)
		memcpy(&amp;srv.sin_addr, dnsip-&gt;h_addr_list[0], sizeof(dnsip));
	else
		return 0;
}
else
{
	srv.sin_addr.s_addr = inet_addr(IPAddress);
}
srv.sin_port = htons(iPort);
srv.sin_family = AF_INET;

closesocket(s);
WSACleanup();
</code></pre>
<p>Beim connect:</p>
<pre><code class="language-cpp">int	iError_connect;
int	iError_send;
int	recvbytes = 1;
int	iError_recive = 0;
char recvbuf[64];

//*** create socket ***//
WSAStartup(MAKEWORD(2,0),&amp;wsa);
s = socket(PF_INET,SOCK_STREAM,0);

//*** set timeout 1 sec ***//
int lenght = 1;
setsockopt(s,SOL_SOCKET,SO_RCVTIMEO,(const char*)&amp;lenght,sizeof(lenght));

//*** connect to server ***//
iError_connect = connect(s,(struct sockaddr*) &amp;srv, sizeof(srv));

//*** send request ***//
iError_send = send (s, cRequest, strlen(cRequest), 0);

//*** get recive ***//
do
{ 
	recvbytes = recv(s, recvbuf, sizeof(recvbuf), 0);
	if (recvbytes &gt; 0)
		iError_recive++;
} while(recvbytes &gt; 0);

closesocket(s);
WSACleanup();
</code></pre>
<p>iPort ist 8080<br />
IPAddress ist 10.101.1.223<br />
cRequest ist GET <a href="http://10.101.1.223/index.html" rel="nofollow">http://10.101.1.223/index.html</a> HTTP/1.0\nHost: 10.101.1.223\n\n</p>
]]></description><link>https://www.c-plusplus.net/forum/post/507147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/507147</guid><dc:creator><![CDATA[Der_Knob]]></dc:creator><pubDate>Fri, 23 Apr 2004 07:30:25 GMT</pubDate></item><item><title><![CDATA[Reply to recv() Funktion on Fri, 23 Apr 2004 07:44:56 GMT]]></title><description><![CDATA[<p>oh man... ok hab den Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>bei:</p>
<pre><code class="language-cpp">if (inet_addr(IPAddress) == INADDR_NONE) 
{ 
    dnsip = gethostbyname(IPAddress); 
    if (dnsip) 
        memcpy(&amp;srv.sin_addr, dnsip-&gt;h_addr_list[0], sizeof(dnsip)); 
    else 
        return 0; 
} 
else 
{ 
    srv.sin_addr.s_addr = inet_addr(IPAddress); 
}
</code></pre>
<p>da war das mit der Namensauflösung falsch!<br />
Nicht:<br />
memcpy(&amp;srv.sin_addr, dnsip-&gt;h_addr_list[0], sizeof(dnsip));<br />
sondern:<br />
memcpy( (char *)&amp;srv.sin_addr, dnsip-&gt;h_addr, dnsip-&gt;h_length);</p>
<p>Jetzt funkt das auch!!! <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/507151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/507151</guid><dc:creator><![CDATA[Der_Knob]]></dc:creator><pubDate>Fri, 23 Apr 2004 07:44:56 GMT</pubDate></item></channel></rss>