<?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[udp sendto problem]]></title><description><![CDATA[<p>hallo erstmal,</p>
<p>ich beschäftige mich in letzter zeit der programmierung von sockets. und ich mir folgendes ziel gesetzt: ein aufruf einer beliebigen index.html per GET - und so. und genau das wollte ich mit drei sockets machen: einmal tcp, einmal udp und einmal mit nem raw.<br />
also der weg über tcp war schnell gegangen, aber nun hab ich nen problem mit dem udp.<br />
bei sendto bekomme ich stets den fehlercode 10045 (&quot;Der Vorgang wird von dem Objekttyp nicht unterstützt, auf den Bezug genommen wurde&quot;) ... wobei es aber bei tcp voll funktionstüchtig ist ...<br />
PS: es handelt sich um eine fehlermeldung des compilers!!!</p>
<p>hier mal der code:</p>
<pre><code>#include &lt;windows.h&gt;
#include &lt;winsock.h&gt;
#include &lt;stdio.h&gt;
#include &lt;iostream&gt;
using namespace std;

int winsock_starten (void);
void fehlermeldung ();
int socket_senden (int s, char* destIP, const int port);

int main ()
{
    int s;
    char destIP []=&quot;127.0.0.1&quot;;
    const int port = 80;

    winsock_starten ();
    socket_senden(s, destIP, port);

    system(&quot;pause&quot;);
    return 0;
}

int winsock_starten (void)
{   
    long rc;
    WSADATA wsa;
    WSAStartup(MAKEWORD(2,0),&amp;wsa); 
    if (rc==SOCKET_ERROR)
    {
       cout &lt;&lt; &quot;winsock_starten &quot;;
       fehlermeldung();
    }
} 

void fehlermeldung ()
{
     cout &lt;&lt; &quot;fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; endl;
}

int socket_senden (int s, char* destIP, const int port)
{
    long rc;
    SOCKADDR_IN addr;
    const char data []=&quot;GET /index.html HTTP/1.1&quot;;

    s=socket(AF_INET, SOCK_DGRAM,0);
    if (s==INVALID_SOCKET)
    {
        cout &lt;&lt; &quot;socket &quot;;
        fehlermeldung();
    }  

    memset(&amp;addr,0,sizeof(SOCKADDR_IN));
    addr.sin_family=AF_INET;
    addr.sin_port=htons(port); 
    addr.sin_addr.s_addr=inet_addr(destIP);

    rc=sendto(s,data,0,sizeof(data),(sockaddr*)&amp;addr,sizeof(addr));
    if (rc==SOCKET_ERROR)
    {
        cout &lt;&lt; &quot;sendto &quot;;
        fehlermeldung();
    }
    else 
    {
       cout &lt;&lt; &quot;scheiße es geht\n&quot;;
       cout &lt;&lt; &quot;gesendeter text: &quot; &lt;&lt; endl;
       cout &lt;&lt; endl &lt;&lt; data;
    }
    return 0;    
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/114502/udp-sendto-problem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 02:11:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/114502.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Jul 2005 22:01:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to udp sendto problem on Mon, 04 Jul 2005 22:01:02 GMT]]></title><description><![CDATA[<p>hallo erstmal,</p>
<p>ich beschäftige mich in letzter zeit der programmierung von sockets. und ich mir folgendes ziel gesetzt: ein aufruf einer beliebigen index.html per GET - und so. und genau das wollte ich mit drei sockets machen: einmal tcp, einmal udp und einmal mit nem raw.<br />
also der weg über tcp war schnell gegangen, aber nun hab ich nen problem mit dem udp.<br />
bei sendto bekomme ich stets den fehlercode 10045 (&quot;Der Vorgang wird von dem Objekttyp nicht unterstützt, auf den Bezug genommen wurde&quot;) ... wobei es aber bei tcp voll funktionstüchtig ist ...<br />
PS: es handelt sich um eine fehlermeldung des compilers!!!</p>
<p>hier mal der code:</p>
<pre><code>#include &lt;windows.h&gt;
#include &lt;winsock.h&gt;
#include &lt;stdio.h&gt;
#include &lt;iostream&gt;
using namespace std;

int winsock_starten (void);
void fehlermeldung ();
int socket_senden (int s, char* destIP, const int port);

int main ()
{
    int s;
    char destIP []=&quot;127.0.0.1&quot;;
    const int port = 80;

    winsock_starten ();
    socket_senden(s, destIP, port);

    system(&quot;pause&quot;);
    return 0;
}

int winsock_starten (void)
{   
    long rc;
    WSADATA wsa;
    WSAStartup(MAKEWORD(2,0),&amp;wsa); 
    if (rc==SOCKET_ERROR)
    {
       cout &lt;&lt; &quot;winsock_starten &quot;;
       fehlermeldung();
    }
} 

void fehlermeldung ()
{
     cout &lt;&lt; &quot;fehlercode: &quot; &lt;&lt; WSAGetLastError() &lt;&lt; endl;
}

int socket_senden (int s, char* destIP, const int port)
{
    long rc;
    SOCKADDR_IN addr;
    const char data []=&quot;GET /index.html HTTP/1.1&quot;;

    s=socket(AF_INET, SOCK_DGRAM,0);
    if (s==INVALID_SOCKET)
    {
        cout &lt;&lt; &quot;socket &quot;;
        fehlermeldung();
    }  

    memset(&amp;addr,0,sizeof(SOCKADDR_IN));
    addr.sin_family=AF_INET;
    addr.sin_port=htons(port); 
    addr.sin_addr.s_addr=inet_addr(destIP);

    rc=sendto(s,data,0,sizeof(data),(sockaddr*)&amp;addr,sizeof(addr));
    if (rc==SOCKET_ERROR)
    {
        cout &lt;&lt; &quot;sendto &quot;;
        fehlermeldung();
    }
    else 
    {
       cout &lt;&lt; &quot;scheiße es geht\n&quot;;
       cout &lt;&lt; &quot;gesendeter text: &quot; &lt;&lt; endl;
       cout &lt;&lt; endl &lt;&lt; data;
    }
    return 0;    
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/823866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/823866</guid><dc:creator><![CDATA[DOC]]></dc:creator><pubDate>Mon, 04 Jul 2005 22:01:02 GMT</pubDate></item><item><title><![CDATA[Reply to udp sendto problem on Mon, 04 Jul 2005 22:05:55 GMT]]></title><description><![CDATA[<p>Aha, dein Compiler kann Winsock Fehlercodes ausgeben? Interessant.</p>
<p>Wahrscheinlich muss der Server auch mit UDP arbeiten.</p>
<p>Bei HTTP ist aber UDP doch vollkommener Schwachsinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/823867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/823867</guid><dc:creator><![CDATA[wwwwww]]></dc:creator><pubDate>Mon, 04 Jul 2005 22:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to udp sendto problem on Tue, 05 Jul 2005 09:35:54 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/824059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/824059</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 05 Jul 2005 09:35:54 GMT</pubDate></item><item><title><![CDATA[Reply to udp sendto problem on Tue, 05 Jul 2005 12:42:55 GMT]]></title><description><![CDATA[<p>Ich Idiot, es handelt sich natürlich <strong>nicht</strong> um eine Fehlermeldung des Compilers! Was doch das Weglassen eines einzelnen Buchstabens doch für einen völlig verzerrten Sinn ergeben kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>sicherlich ist eine http - udp Korrelation auch anders zu gestalten, aber ob das nun schwachsinn oder sonstwas ist, steht gar nicht zur Debatte.</p>
<p>Ich will doch nur wissen, ob das was ich erstellte richtig ist oder wo ich nen Fehler eingebaut habe <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>
]]></description><link>https://www.c-plusplus.net/forum/post/824232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/824232</guid><dc:creator><![CDATA[DOC]]></dc:creator><pubDate>Tue, 05 Jul 2005 12:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to udp sendto problem on Tue, 05 Jul 2005 15:23:42 GMT]]></title><description><![CDATA[<p>Also ich glaube ich hab den Fehler gefunden,</p>
<p>MSDN schrieb:</p>
<blockquote>
<p>SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);</p>
</blockquote>
<p>von <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/sendto_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/sendto_2.asp</a> im Beispielquelltext.</p>
<p>Du hast vergessen Winsock zusagen, das du einen UPD-Socket willst, du sagst ihm nur, dass du einen verbindungslosen (SOCK_DGRAM) Socket willst.</p>
<p>Des weiteren frage ich mich warum du hier:</p>
<pre><code>int winsock_starten (void)
{   
    long rc;                             //&lt;== HIER
    WSADATA wsa;
    WSAStartup(MAKEWORD(2,0),&amp;wsa); 
    if (rc==SOCKET_ERROR)
    {
       cout &lt;&lt; &quot;winsock_starten &quot;;
       fehlermeldung();
    }
}
</code></pre>
<p>&quot;long rc;&quot; vereinbarst, wenn du es doch garnicht mit einem Wert belegst(Rüchgabewert?)?</p>
<p>Ich hoffe ich konnte helfen.<br />
Wenn etwas falsch sein sollte korrigiert mich bitte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/824373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/824373</guid><dc:creator><![CDATA[MSDN]]></dc:creator><pubDate>Tue, 05 Jul 2005 15:23:42 GMT</pubDate></item><item><title><![CDATA[Reply to udp sendto problem on Tue, 05 Jul 2005 16:04:39 GMT]]></title><description><![CDATA[<p>der http server wird aber mit accept auf den verbindungsaufbau warten und du sendest einfach mit udp was dahin. ich glaub das geht nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/824404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/824404</guid><dc:creator><![CDATA[~~~~~~~~]]></dc:creator><pubDate>Tue, 05 Jul 2005 16:04:39 GMT</pubDate></item><item><title><![CDATA[Reply to udp sendto problem on Tue, 05 Jul 2005 22:34:12 GMT]]></title><description><![CDATA[<p>Zudem ist dein HTTP-Query nicht gültig.<br />
&quot;GET /index.html HTTP/1.1&quot; &lt;= Da müsste eigentlich noch ein HOST-Headerfeld rein und müssten da nich auch am Ende noch 2x '\n' hin ?</p>
<p>HTTP nutzt soviel ich weiss überhaupt kein UDP, zumindest kenne ich keinen Server der auf UDP-Pakete auf Port 80 antwortet <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=";D"
      alt="😉"
    /></p>
<p>Ich würde außerdem sagen, dass da was vertauscht ist:</p>
<pre><code class="language-cpp">rc=sendto(
s,
data, // laut msdn: buffer
0, // laut msdn: length of buffer - Bei dir 0!!
sizeof(data), // laut msdn: flags - Sollten vermutl. 0 sein ;D
(sockaddr*)&amp;addr,
sizeof(addr));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/824668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/824668</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Tue, 05 Jul 2005 22:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to udp sendto problem on Tue, 05 Jul 2005 22:36:31 GMT]]></title><description><![CDATA[<p>alles falsch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/824670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/824670</guid><dc:creator><![CDATA[zusammenfassung]]></dc:creator><pubDate>Tue, 05 Jul 2005 22:36:31 GMT</pubDate></item><item><title><![CDATA[Reply to udp sendto problem on Wed, 06 Jul 2005 21:51:32 GMT]]></title><description><![CDATA[<p>jo danke, geeky, die vertauschung war der fehler!</p>
<p>@zusammenfassung: wie, alles falsch. kannste das mal erläutern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825466</guid><dc:creator><![CDATA[DOC]]></dc:creator><pubDate>Wed, 06 Jul 2005 21:51:32 GMT</pubDate></item><item><title><![CDATA[Reply to udp sendto problem on Wed, 06 Jul 2005 22:46:48 GMT]]></title><description><![CDATA[<p>was falsch ist haben die vorposter schon erläutert.</p>
<p>habe das nur nochmal zusammengefasst <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>
]]></description><link>https://www.c-plusplus.net/forum/post/825512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825512</guid><dc:creator><![CDATA[zusammenfassung]]></dc:creator><pubDate>Wed, 06 Jul 2005 22:46:48 GMT</pubDate></item></channel></rss>