<?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[Fehler 10022 WSAEINVAL bei sendto()]]></title><description><![CDATA[<p>Hi ...<br />
Ich hab ein kleines socket progg geschrieben dort will ich mit einem Raw socket..</p>
<pre><code>SOCKET create_socket(int timeout, bool RAW)
{

	// Anfangen den socket einzustellen
	SOCKET sock; // Der socket
	int on = 1; // Wert 1 = an
	int st; // Der status

	sock = socket(AF_INET,SOCK_RAW,IPPROTO_TCP);// Socket erstellen
	if(sock == -1)
	{
		cout&lt;&lt;&quot;Fehler socket konnte nicht erstellt werden.......&quot;&lt;&lt;endl;
		beende();
	}

	if(RAW == true)// Raw Socket???? 
	{
		st = setsockopt(sock ,IPPROTO_IP ,IP_HDRINCL ,(char*)&amp;on ,sizeof(on) );// Stellen das man selber den Ip Header schreibt
		if(st == -1)
			{
			cout&lt;&lt;&quot;IP_HDRINCL konnt nicht gesetzt werden setsockopt()&quot;&lt;&lt;endl;
			beende();
			}
	}

	if(timeout != NULL) // Recvtimeout einstellen wenn der wert gesetzt ist (wer es braucht)
	{
		st = setsockopt(sock,SOL_SOCKET, SO_RCVTIMEO, (char*)&amp;timeout, sizeof(timeout));
		if(st == -1)
		{
			cout&lt;&lt;&quot;SO_RCVTIMEO konnte nicht gesetzt werden setsockopt()&quot;&lt;&lt;endl;
			beende();
		}// st

	}// Timeout

	// Socket Richtig eingestellt 
	return sock; // Ihn zurück geben 

}// Fertig
</code></pre>
<p>Mit Dem will ich dann über sendto daten senden der buffer enthält den ip Header und Tcp Header aber die funktion gibt immer den fehler 10022 zurück</p>
<pre><code>int bytes_send = sendto(sock ,data ,datasize ,0 ,(SOCKADDR*)&amp;destaddr ,sizeof(destaddr) );
			if(bytes_send == -1)
				beende();
</code></pre>
<p>Jetzt weiss ich nicht woran ich arbeiten soll um den fehler weg zu bekommen <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="😕"
    /><br />
Ich hoffe ihr könnt mir helfen <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/72143/fehler-10022-wsaeinval-bei-sendto</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 03:04:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/72143.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Apr 2004 18:56:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler 10022 WSAEINVAL bei sendto() on Sun, 25 Apr 2004 18:56:37 GMT]]></title><description><![CDATA[<p>Hi ...<br />
Ich hab ein kleines socket progg geschrieben dort will ich mit einem Raw socket..</p>
<pre><code>SOCKET create_socket(int timeout, bool RAW)
{

	// Anfangen den socket einzustellen
	SOCKET sock; // Der socket
	int on = 1; // Wert 1 = an
	int st; // Der status

	sock = socket(AF_INET,SOCK_RAW,IPPROTO_TCP);// Socket erstellen
	if(sock == -1)
	{
		cout&lt;&lt;&quot;Fehler socket konnte nicht erstellt werden.......&quot;&lt;&lt;endl;
		beende();
	}

	if(RAW == true)// Raw Socket???? 
	{
		st = setsockopt(sock ,IPPROTO_IP ,IP_HDRINCL ,(char*)&amp;on ,sizeof(on) );// Stellen das man selber den Ip Header schreibt
		if(st == -1)
			{
			cout&lt;&lt;&quot;IP_HDRINCL konnt nicht gesetzt werden setsockopt()&quot;&lt;&lt;endl;
			beende();
			}
	}

	if(timeout != NULL) // Recvtimeout einstellen wenn der wert gesetzt ist (wer es braucht)
	{
		st = setsockopt(sock,SOL_SOCKET, SO_RCVTIMEO, (char*)&amp;timeout, sizeof(timeout));
		if(st == -1)
		{
			cout&lt;&lt;&quot;SO_RCVTIMEO konnte nicht gesetzt werden setsockopt()&quot;&lt;&lt;endl;
			beende();
		}// st

	}// Timeout

	// Socket Richtig eingestellt 
	return sock; // Ihn zurück geben 

}// Fertig
</code></pre>
<p>Mit Dem will ich dann über sendto daten senden der buffer enthält den ip Header und Tcp Header aber die funktion gibt immer den fehler 10022 zurück</p>
<pre><code>int bytes_send = sendto(sock ,data ,datasize ,0 ,(SOCKADDR*)&amp;destaddr ,sizeof(destaddr) );
			if(bytes_send == -1)
				beende();
</code></pre>
<p>Jetzt weiss ich nicht woran ich arbeiten soll um den fehler weg zu bekommen <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="😕"
    /><br />
Ich hoffe ihr könnt mir helfen <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/508637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/508637</guid><dc:creator><![CDATA[cucu]]></dc:creator><pubDate>Sun, 25 Apr 2004 18:56:37 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler 10022 WSAEINVAL bei sendto() on Sun, 25 Apr 2004 19:04:22 GMT]]></title><description><![CDATA[<p>Der Fehler 10022 ist dieser:</p>
<blockquote>
<p>WSAEINVAL (10022 )<br />
Invalid argument.<br />
Some invalid argument was supplied (for example, specifying an invalid level to the setsockopt function). In some instances, it also refers to the current state of the socket—for instance, calling accept on a socket that is not listening.</p>
</blockquote>
<p>Also wird wohl irgendein Argument falsch sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/508640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/508640</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sun, 25 Apr 2004 19:04:22 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler 10022 WSAEINVAL bei sendto() on Sun, 25 Apr 2004 19:31:46 GMT]]></title><description><![CDATA[<p>Ja Hab ich mir auchschon durchgelsen nur ich hab keine ahnung welches in der Definition von sendto() steht das es was mit flags zu tun hat</p>
<blockquote>
<p>An unknown flag was specified, or MSG_OOB was specified for a socket with SO_OOBINLINE enabled.</p>
</blockquote>
<p>aber ich kann nur einen flag mit der funktion mitgeben aber dort steht nicht wie ich ihn verändern sollte. Ich hab schon alles was ich gedacht habe woran das problem liegen könnt probiert deswegen frage ich ja jetzt auch hier im Forum nach.<br />
Aber danke für die schnelle antwort <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/508651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/508651</guid><dc:creator><![CDATA[cucu]]></dc:creator><pubDate>Sun, 25 Apr 2004 19:31:46 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler 10022 WSAEINVAL bei sendto() on Mon, 26 Apr 2004 14:20:19 GMT]]></title><description><![CDATA[<p>Ich glaub nich dass es am Flag (du hast ja auch keinen gesetzt) liegt.<br />
Evtl. ist deine sockaddr/sockaddr_in Struktur falsch ausgefüllt oder data oder datasize sind kaputt oder so...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/509193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/509193</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Mon, 26 Apr 2004 14:20:19 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler 10022 WSAEINVAL bei sendto() on Thu, 29 Apr 2004 14:51:13 GMT]]></title><description><![CDATA[<p>Ich hab den buffer überprüft und den die SOCKADDR structur auch aber es geht immer nochnicht ich komm einfach nicht weiter <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="😕"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/511200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/511200</guid><dc:creator><![CDATA[cucu]]></dc:creator><pubDate>Thu, 29 Apr 2004 14:51:13 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler 10022 WSAEINVAL bei sendto() on Thu, 29 Apr 2004 19:27:46 GMT]]></title><description><![CDATA[<p>Hmm, dann weiss ich auch nich weiter <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>
]]></description><link>https://www.c-plusplus.net/forum/post/511395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/511395</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Thu, 29 Apr 2004 19:27:46 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler 10022 WSAEINVAL bei sendto() on Sat, 01 May 2004 23:43:07 GMT]]></title><description><![CDATA[<p>ICh denke es könnt an den Headern Liegen also der IP Header ist von <a href="http://c-worker.ch" rel="nofollow">c-worker.ch</a> 24 bytes gross</p>
<pre><code>struct IP_HEADER
{
  unsigned int   h_len:4;          // Länge des Headers
  unsigned int   version:4;        // IP Version
  unsigned char  tos;              // Type of service
  unsigned short total_len;        // Gesamt länge des Pakets
  unsigned short ident;            // unique identifier
  unsigned short frag_and_flags;   // flags
  unsigned char  ttl;              // TTL
  unsigned char  proto;            // Protokoll (TCP, UDP etc)
  unsigned short checksum;         // IP Checksumme
  unsigned int   sourceIP;         // Source IP
  unsigned int   destIP;           // Ziel IP
};
</code></pre>
<p>und der TCP HEader ist von mir vieleicht liegt da drinn der fehler er ist 36 bytes eigentlich viel zu gross</p>
<pre><code>struct TCP_HEADER
{
	unsigned short port_from; 
	unsigned short port_dest; 
	unsigned int   seq_numb; 
	unsigned int   ack_numb; 
	unsigned int offset:4;
	unsigned char reserviert:4;
	bool flag1; 
	bool flag2;  
	bool flag3; 
	bool flag4; 
	bool flag5; 
	bool flag6; 
	unsigned short bytesrecv; 
	unsigned short pr_summe; 
	unsigned short urg_pointer; 
	unsigned int options ; 
};
</code></pre>
<p>Ich könnte mir denken das drin der fehler liegt aber ich weiss es nicht hab ihn schon öfter verglichen vieleicht findet ja jemand fehler ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512652</guid><dc:creator><![CDATA[cucu]]></dc:creator><pubDate>Sat, 01 May 2004 23:43:07 GMT</pubDate></item></channel></rss>