<?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[UDPSocket, Server empfängt nur über localhost]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe (mal wieder) ein kleines Problem. Diesmal aber eher ein komisches.</p>
<p>Ich habe mir, wie bereits in anderen Threads erwähnt einen UDPClient gebaut, der die Daten an einen Vala Server sendet.</p>
<p>Der Client sieht wie folgt aus:</p>
<pre><code>void UDPClient::Send(std::vector&lt;unsigned char&gt; buff){

	// JA das ist schlecht, ich war bis her nur zu Faul es anders zu machen -&gt; Erstmal zum debuggen 
	char data[buff.size()];
	for(int i = 0; i &lt; buff.size(); i++){
		data[i] = buff.at(i);
	}

	sendto(_socket,data,buff.size(),0,(struct sockaddr *)&amp;serverAdress,sizeof(serverAdress));

}

void UDPClient::CreateUDPClient(int port, const char* ip){

	// Status ausgeben
	std::cout &lt;&lt; &quot;\033[32m&quot; &lt;&lt; &quot;[Status]&quot; &lt;&lt; &quot; UDPClient erfolgreich erstellt! IP: &quot; &lt;&lt; ip &lt;&lt; &quot; Port: &quot; &lt;&lt; port &lt;&lt; &quot;\033[0m&quot; &lt;&lt; std::endl;

	// Neuen Socket erstellen
	_socket = socket(AF_INET,SOCK_DGRAM,0);

	// Informationen übergeben
	serverAdress.sin_family = AF_INET;
	serverAdress.sin_addr.s_addr = inet_addr(ip);
	serverAdress.sin_port = htons(port);

	// Alles ok?
	if(_socket == -1)
	{
		// Nicht gut!
		throw THOMASException(&quot;Beim erstellen des Sockets ist ein Fehler aufgetreten&quot;);
	}

}
</code></pre>
<p>Wenn die IP 127.0.0.1 ist, klappt alles wunderbar, sobald ich die IP 192.168.178.26 nutze, empängt der Server keine Bytes mehr. Woran könnte das liegen? Ich sehe mit Wireshark auch nichts über die Netzwerkkarte laufen, bei 127.0.0.1 allerdings schon (loopback)</p>
<p>Dies müsste doch eig ohne Probleme gehen, oder?<br />
inet_addr(ip);</p>
<p>Achja, beachtet den Code in Zeile 3-5 bitte nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
Danke <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/331347/udpsocket-server-empfängt-nur-über-localhost</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 16:50:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/331347.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Feb 2015 21:13:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to UDPSocket, Server empfängt nur über localhost on Mon, 23 Feb 2015 21:17:56 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe (mal wieder) ein kleines Problem. Diesmal aber eher ein komisches.</p>
<p>Ich habe mir, wie bereits in anderen Threads erwähnt einen UDPClient gebaut, der die Daten an einen Vala Server sendet.</p>
<p>Der Client sieht wie folgt aus:</p>
<pre><code>void UDPClient::Send(std::vector&lt;unsigned char&gt; buff){

	// JA das ist schlecht, ich war bis her nur zu Faul es anders zu machen -&gt; Erstmal zum debuggen 
	char data[buff.size()];
	for(int i = 0; i &lt; buff.size(); i++){
		data[i] = buff.at(i);
	}

	sendto(_socket,data,buff.size(),0,(struct sockaddr *)&amp;serverAdress,sizeof(serverAdress));

}

void UDPClient::CreateUDPClient(int port, const char* ip){

	// Status ausgeben
	std::cout &lt;&lt; &quot;\033[32m&quot; &lt;&lt; &quot;[Status]&quot; &lt;&lt; &quot; UDPClient erfolgreich erstellt! IP: &quot; &lt;&lt; ip &lt;&lt; &quot; Port: &quot; &lt;&lt; port &lt;&lt; &quot;\033[0m&quot; &lt;&lt; std::endl;

	// Neuen Socket erstellen
	_socket = socket(AF_INET,SOCK_DGRAM,0);

	// Informationen übergeben
	serverAdress.sin_family = AF_INET;
	serverAdress.sin_addr.s_addr = inet_addr(ip);
	serverAdress.sin_port = htons(port);

	// Alles ok?
	if(_socket == -1)
	{
		// Nicht gut!
		throw THOMASException(&quot;Beim erstellen des Sockets ist ein Fehler aufgetreten&quot;);
	}

}
</code></pre>
<p>Wenn die IP 127.0.0.1 ist, klappt alles wunderbar, sobald ich die IP 192.168.178.26 nutze, empängt der Server keine Bytes mehr. Woran könnte das liegen? Ich sehe mit Wireshark auch nichts über die Netzwerkkarte laufen, bei 127.0.0.1 allerdings schon (loopback)</p>
<p>Dies müsste doch eig ohne Probleme gehen, oder?<br />
inet_addr(ip);</p>
<p>Achja, beachtet den Code in Zeile 3-5 bitte nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
Danke <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2444070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444070</guid><dc:creator><![CDATA[Waishon]]></dc:creator><pubDate>Mon, 23 Feb 2015 21:17:56 GMT</pubDate></item><item><title><![CDATA[Reply to UDPSocket, Server empfängt nur über localhost on Mon, 23 Feb 2015 22:26:58 GMT]]></title><description><![CDATA[<p>Vermutlich ist dein UDP Server nur auf <code>127.0.0.1</code> gebunden.<br />
Binde den mal auf INADDR_ANY.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444077</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 23 Feb 2015 22:26:58 GMT</pubDate></item><item><title><![CDATA[Reply to UDPSocket, Server empfängt nur über localhost on Tue, 24 Feb 2015 12:29:43 GMT]]></title><description><![CDATA[<p>Es handelt sich um ein Vala Server, aber ich bin mir ziemlich sicher, dass es am Client liegt (C++).</p>
<p>Habe in Beispielen im Internet gesehen, dass dort noch sin_zero benutzt wird um auf 16Bytes zu kommen bzw. in anderen getHostName(). Kann es daran liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444141</guid><dc:creator><![CDATA[Waishon]]></dc:creator><pubDate>Tue, 24 Feb 2015 12:29:43 GMT</pubDate></item><item><title><![CDATA[Reply to UDPSocket, Server empfängt nur über localhost on Tue, 24 Feb 2015 14:13:22 GMT]]></title><description><![CDATA[<p>Waishon schrieb:</p>
<blockquote>
<p>Es handelt sich um ein Vala Server,</p>
</blockquote>
<p>k.A. was das ist. was ist das?</p>
<p>Waishon schrieb:</p>
<blockquote>
<p>aber ich bin mir ziemlich sicher, dass es am Client liegt (C++).</p>
</blockquote>
<p>OK. kann sein. kann sein nicht.</p>
<p>Waishon schrieb:</p>
<blockquote>
<p>Habe in Beispielen im Internet gesehen, dass dort noch sin_zero benutzt wird um auf 16Bytes zu kommen bzw. in anderen getHostName(). Kann es daran liegen?</p>
</blockquote>
<p>guter tip.<br />
ich persönlich nulle solche structs grundsätzlich bevor ich anfange reinzuschreiben.<br />
also als lokale variable grundsätzlich</p>
<pre><code class="language-cpp">sockaddr_in addr = {};
</code></pre>
<p>und scheiss auf den minimalen performance hit.<br />
kannst natürlich auch <code>memset()</code> dafür verwenden, aber warum umständlich wenns auch einfach geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444167</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 24 Feb 2015 14:13:22 GMT</pubDate></item></channel></rss>