<?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[kleines Socketproblem]]></title><description><![CDATA[<p>Hallo<br />
bin jetz irgendwie gerade dabei etwas Barcodegescanntes &quot;Hostname:Port&quot; so ein bisschen auseinanderzunehmen und dann eine tcpip-verbindung dahin zu erstellen per winsocket. Bekomme nun aber wieder einige fehler bei denen ich nicht genau weis woher sie kommen. Leider muss ich recht zielorientiert arbeiten und habe vorher mit c/c++ noch nicht wirklich viel erfahrung machen können, aber es wäre nett wenn ich ein paar Hinweise/Hilfen bekomme <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="🙂"
    /><br />
Es is bis jetz eher noch testcode, kaum fehlerbehandlungen usw:</p>
<pre><code>void CScannerclient2Dlg::OnButton1() 
{
	long rc;
	CString strText,str2Text; 
	char host[20], port[6],buff[256];
	SOCKET socket1;
	SOCKADDR_IN addr;
	CStatic* pCtlStatic = NULL; 
	int i(0),j(0);
    HOSTENT* he;

	m_Edit2.GetLine(0, strText.GetBuffer(m_Edit2.LineLength(0)));
	//strcpy(eingabe,strText);
	//eingabe=strText;
	int pos = strText.Find(':');
	if (pos!=-1)
		{
		 for (i=0;i&lt;=pos;i++) {host[i]=strText[i];}
		 for (i=pos,j=0;i=(strText.GetLength());i++,j++) {port[j]=strText[i];}
		}
	else
	{		};
	he=gethostbyname(host);
	memcpy(&amp;(addr-&gt;sin_addr),he-&gt;h_addr_list[0],4);
	buff[0]=(&quot;Hallo&quot;);
	rc=startWinSock();
	socket1=socket(AF_INET,SOCK_STREAM,0);
	memset(&amp;addr,0,sizeof(SOCKADDR_IN));
	addr.sin_family=AF_INET;
	addr.sin_port=htons(atoi(port));
	addr.sin_addr.s_addr=inet_addr(host);
	rc=connect(socket1,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR));
	send(socket1,buff,1024,0);
	closesocket(socket1);
	WSACleanup();
</code></pre>
<p>Fehler sind folgende (beziehen sich auf Zeile 25 und 26):<br />
C:\Dokumente und Einstellungen\stephan\Eigene Dateien\VC++ SP4\scannerclient2\scannerclient2Dlg.cpp(96) : error C2819: type 'sockaddr_in' does not have an overloaded member 'operator -&gt;'<br />
c:\programme\windows ce tools\wce420\datalogic-net\include\armv4i\winsock.h(355) : see declaration of 'sockaddr_in'<br />
C:\Dokumente und Einstellungen\stephan\Eigene Dateien\VC++ SP4\scannerclient2\scannerclient2Dlg.cpp(96) : error C2227: left of '-&gt;sin_addr' must point to class/struct/union<br />
C:\Dokumente und Einstellungen\stephan\Eigene Dateien\VC++ SP4\scannerclient2\scannerclient2Dlg.cpp(97) : error C2440: '=' : cannot convert from 'char [6]' to 'char'<br />
This conversion requires a reinterpret_cast, a C-style cast or function-style cast</p>
<p>Gruß Basti</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194652/kleines-socketproblem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 23:26:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194652.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Oct 2007 13:25:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to kleines Socketproblem on Tue, 09 Oct 2007 13:27:26 GMT]]></title><description><![CDATA[<p>Hallo<br />
bin jetz irgendwie gerade dabei etwas Barcodegescanntes &quot;Hostname:Port&quot; so ein bisschen auseinanderzunehmen und dann eine tcpip-verbindung dahin zu erstellen per winsocket. Bekomme nun aber wieder einige fehler bei denen ich nicht genau weis woher sie kommen. Leider muss ich recht zielorientiert arbeiten und habe vorher mit c/c++ noch nicht wirklich viel erfahrung machen können, aber es wäre nett wenn ich ein paar Hinweise/Hilfen bekomme <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="🙂"
    /><br />
Es is bis jetz eher noch testcode, kaum fehlerbehandlungen usw:</p>
<pre><code>void CScannerclient2Dlg::OnButton1() 
{
	long rc;
	CString strText,str2Text; 
	char host[20], port[6],buff[256];
	SOCKET socket1;
	SOCKADDR_IN addr;
	CStatic* pCtlStatic = NULL; 
	int i(0),j(0);
    HOSTENT* he;

	m_Edit2.GetLine(0, strText.GetBuffer(m_Edit2.LineLength(0)));
	//strcpy(eingabe,strText);
	//eingabe=strText;
	int pos = strText.Find(':');
	if (pos!=-1)
		{
		 for (i=0;i&lt;=pos;i++) {host[i]=strText[i];}
		 for (i=pos,j=0;i=(strText.GetLength());i++,j++) {port[j]=strText[i];}
		}
	else
	{		};
	he=gethostbyname(host);
	memcpy(&amp;(addr-&gt;sin_addr),he-&gt;h_addr_list[0],4);
	buff[0]=(&quot;Hallo&quot;);
	rc=startWinSock();
	socket1=socket(AF_INET,SOCK_STREAM,0);
	memset(&amp;addr,0,sizeof(SOCKADDR_IN));
	addr.sin_family=AF_INET;
	addr.sin_port=htons(atoi(port));
	addr.sin_addr.s_addr=inet_addr(host);
	rc=connect(socket1,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR));
	send(socket1,buff,1024,0);
	closesocket(socket1);
	WSACleanup();
</code></pre>
<p>Fehler sind folgende (beziehen sich auf Zeile 25 und 26):<br />
C:\Dokumente und Einstellungen\stephan\Eigene Dateien\VC++ SP4\scannerclient2\scannerclient2Dlg.cpp(96) : error C2819: type 'sockaddr_in' does not have an overloaded member 'operator -&gt;'<br />
c:\programme\windows ce tools\wce420\datalogic-net\include\armv4i\winsock.h(355) : see declaration of 'sockaddr_in'<br />
C:\Dokumente und Einstellungen\stephan\Eigene Dateien\VC++ SP4\scannerclient2\scannerclient2Dlg.cpp(96) : error C2227: left of '-&gt;sin_addr' must point to class/struct/union<br />
C:\Dokumente und Einstellungen\stephan\Eigene Dateien\VC++ SP4\scannerclient2\scannerclient2Dlg.cpp(97) : error C2440: '=' : cannot convert from 'char [6]' to 'char'<br />
This conversion requires a reinterpret_cast, a C-style cast or function-style cast</p>
<p>Gruß Basti</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381289</guid><dc:creator><![CDATA[sebastian87]]></dc:creator><pubDate>Tue, 09 Oct 2007 13:27:26 GMT</pubDate></item><item><title><![CDATA[Reply to kleines Socketproblem on Tue, 09 Oct 2007 13:33:05 GMT]]></title><description><![CDATA[<p>Die ersten beiden Meldungen beziehen sich darauf, daß du eine blanke struct hast und keinen Zeiger auf eine struct - und da geht der Elementzugriff mit . (Punkt) statt -&gt;.</p>
<p>Die dritte Meldung bedeutet, daß man in einen einzelnen char kein String-Literal kopieren kann, sondern nur char-Literale. (ich nehme an, du willst, das Array mit dem Text auffüllen - dazu brauchst du strcpy())</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381297</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 09 Oct 2007 13:33:05 GMT</pubDate></item><item><title><![CDATA[Reply to kleines Socketproblem on Tue, 09 Oct 2007 13:44:02 GMT]]></title><description><![CDATA[<p>cool danke<br />
habe den code nun soweit verändert:<br />
memcpy(&amp;(addr.sin_addr),he.h_addr_list[0],4);<br />
strcpy(buff,&quot;Hallo&quot;);</p>
<p>nur nun meckert der compiler noch am he... rum, ich habe diesen einen Befehl nur aus einem Tut gezogen</p>
<p>C:\Dokumente und Einstellungen\stephan\Eigene Dateien\VC++ SP4\scannerclient2\scannerclient2Dlg.cpp(96) : error C2228: left of '.h_addr_list' must have class/struct/union type</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381309</guid><dc:creator><![CDATA[sebastian87]]></dc:creator><pubDate>Tue, 09 Oct 2007 13:44:02 GMT</pubDate></item><item><title><![CDATA[Reply to kleines Socketproblem on Tue, 09 Oct 2007 13:50:55 GMT]]></title><description><![CDATA[<p>'he' ist nun wiederum ein Zeiger und muß dereferenziert werden (also <code>(*he).h_addr_list</code> bzw. <code>he-&gt;h_addr_list</code> ) <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>(PS: Ich bin zwar normalerweise kein Verfechter der ungarischen Notation, aber bei dir wäre sie vermutlich hilfreich ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381322</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 09 Oct 2007 13:50:55 GMT</pubDate></item><item><title><![CDATA[Reply to kleines Socketproblem on Tue, 09 Oct 2007 14:00:37 GMT]]></title><description><![CDATA[<p>ok, hab es nun compiled bekommen. dasses ein zeiger war wusste ich ja soweit, aber das was ich heute in dem Buch gelesen habe über Zeiger, KLassen und structs is anscheinend noch nicht so verinnerlicht ^^<br />
Vielen Dank nochmal <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>
<p>Mal schaun wie ich jetzt mal ein paar Ausgaben machen kann auf meine Form, um zu guggen, ob der auch mit den Variablen das macht was er soll. Um z.B. static text zu editieren hab ich ja schon was eingebaut, aber ich weis nicht, wie man das mit dem Handler für den This zeiger macht <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="😞"
    /><br />
Gruß Basti</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381333</guid><dc:creator><![CDATA[sebastian87]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:00:37 GMT</pubDate></item></channel></rss>