<?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[methode die socket verbindet?]]></title><description><![CDATA[<p>ich hab testweise mal ne klasse gebastelt:</p>
<pre><code class="language-cpp">class MakeSockets
	{
	private:
		int status;
		SOCKET s;
		SOCKADDR_IN addr;
		long rc;
	public:
		MakeSockets()
		{
			status = 0;
		}
		void ConnectSock(char *IPAdresse)
		{
			rc=startWinsock();
			// Winsock starten
			if(rc!=0)
			{
				//FEHLER! code in rc drin...
			}
			else
			{
				//OK
			}
			// Socket erstellen
			s=socket(AF_INET,SOCK_STREAM,0);
			if(s==INVALID_SOCKET)
			{
				closesocket(s);
			}
			else
			{
				//socket erstellt
			}
			memset(&amp;addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten 
			addr.sin_family=AF_INET;
			addr.sin_port=htons(12345); // wir verwenden mal port 12345
			addr.sin_addr.s_addr=inet_addr(IPAdresse); // zielrechner ist unser eigener
			rc=connect(s,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR));
			if(rc==SOCKET_ERROR)
			{
				//Fehler: connect gescheitert, fehler code: %d\n&quot;,WSAGetLastError()
				closesocket(s);
				status = 2;
			}
			else
			{
				//Verbunden mit 127.0.0.1..
				status = 1;
			}
		}
		int GiveStatus()
		{
			return status;
		}
		void sendData(char *strToSend)
		{
			rc=send(s,strToSend,strlen(strToSend),0);
		}
	};
</code></pre>
<p>nur leider funtz das senden nur wenn ichs innerhalb der methode connectsock tue oO senddata funzt nicht als eigene methode! die sockets sind aber doch nich lokal definiert und müssten überall verfügbar sein oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/78949/methode-die-socket-verbindet</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 11:17:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/78949.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Jul 2004 15:37:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to methode die socket verbindet? on Tue, 06 Jul 2004 16:09:05 GMT]]></title><description><![CDATA[<p>ich hab testweise mal ne klasse gebastelt:</p>
<pre><code class="language-cpp">class MakeSockets
	{
	private:
		int status;
		SOCKET s;
		SOCKADDR_IN addr;
		long rc;
	public:
		MakeSockets()
		{
			status = 0;
		}
		void ConnectSock(char *IPAdresse)
		{
			rc=startWinsock();
			// Winsock starten
			if(rc!=0)
			{
				//FEHLER! code in rc drin...
			}
			else
			{
				//OK
			}
			// Socket erstellen
			s=socket(AF_INET,SOCK_STREAM,0);
			if(s==INVALID_SOCKET)
			{
				closesocket(s);
			}
			else
			{
				//socket erstellt
			}
			memset(&amp;addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten 
			addr.sin_family=AF_INET;
			addr.sin_port=htons(12345); // wir verwenden mal port 12345
			addr.sin_addr.s_addr=inet_addr(IPAdresse); // zielrechner ist unser eigener
			rc=connect(s,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR));
			if(rc==SOCKET_ERROR)
			{
				//Fehler: connect gescheitert, fehler code: %d\n&quot;,WSAGetLastError()
				closesocket(s);
				status = 2;
			}
			else
			{
				//Verbunden mit 127.0.0.1..
				status = 1;
			}
		}
		int GiveStatus()
		{
			return status;
		}
		void sendData(char *strToSend)
		{
			rc=send(s,strToSend,strlen(strToSend),0);
		}
	};
</code></pre>
<p>nur leider funtz das senden nur wenn ichs innerhalb der methode connectsock tue oO senddata funzt nicht als eigene methode! die sockets sind aber doch nich lokal definiert und müssten überall verfügbar sein oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554624</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Tue, 06 Jul 2004 16:09:05 GMT</pubDate></item><item><title><![CDATA[Reply to methode die socket verbindet? on Tue, 06 Jul 2004 15:55:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>dir ist aber schon klar, daß:</p>
<p>1. &quot;funzt nicht&quot; eine der schlechtesten Fehlerbeschreibungen ist, die man in einem Forum geben kann. Da fragst du schon den Rückgabewert (rc) ab, und läßt uns trotzdem im Unklaren, was rc beinhaltet (und ein eventuell folgendes WSAGetLastError im Fehlerfalle wäre auch noch hilfreich)</p>
<p>2. sizeof dir in den wenigsten Fällen (um noch zu untertreiben) die richtige Länge der zu versendenden Daten (strToSend) zurückgibt, sizeof auf einen Zeiger (strToSend) gibt immer den selben Wert zurück, egal, wieviele Zeichen die Folge umfaßt, auf die strToSend zeigt.</p>
<p>Vielleicht das als erste Ratschläge, vielleicht kann jemand noch die Liste oben ergänzen, ich habe beim ersten Hinsehen nichts anderes gefunden.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554643</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 06 Jul 2004 15:55:18 GMT</pubDate></item><item><title><![CDATA[Reply to methode die socket verbindet? on Tue, 06 Jul 2004 16:08:07 GMT]]></title><description><![CDATA[<p>oO wieso hab ich da sizeof...hm müsste doch strlen sein...änder ich mal schnell...das mit rc guck ich ma nach...<br />
rc = -1<br />
lastError= An operation was attempted on something that is not a socket. ( 10038 )<br />
oO wieso not a socket?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554654</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Tue, 06 Jul 2004 16:08:07 GMT</pubDate></item><item><title><![CDATA[Reply to methode die socket verbindet? on Tue, 06 Jul 2004 16:28:05 GMT]]></title><description><![CDATA[<p>wie sieht dein Aufrufversuch (mit Erstellung des MakeSockets-Objekts und der folgenden Methodenaufrufe) aus? Hast du vor dem Aufruf von sendData mit ConnectSock eine Verbindung hergestellt?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554669</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 06 Jul 2004 16:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to methode die socket verbindet? on Tue, 06 Jul 2004 16:31:13 GMT]]></title><description><![CDATA[<p>klaro</p>
<pre><code class="language-cpp">LRESULT CALLBACK MakeProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 
	{
		MakeSockets Sock;
		switch (message) 
		{
			case WM_INITDIALOG:
				ShowWindow(hwnd, SW_SHOWNORMAL);
				return TRUE;
			case WM_COMMAND: 
            	if(LOWORD(wParam) == IDOK)
				{	
					char *ip = new char[GetEditTextLength(GetDlgItem(hwnd,IDC_IPADDRESS))];
					ip = WindowText(GetDlgItem(hwnd,IDC_IPADDRESS));
					Sock.ConnectSock(ip);
					if(Sock.GiveStatus() == 1)
					{
						MessageBox(hwnd,CombinChars(&quot;Konnte zu &quot;,CombinChars(ip,&quot; verbinden&quot;)),&quot;&quot;,0);
					}
					else if(Sock.GiveStatus() == 2)
					{
						MessageBox(hwnd,CombinChars(&quot;Konnte nicht zu &quot;,CombinChars(ip,&quot; verbinden&quot;)),&quot;&quot;,0);
					}
				}
				if(LOWORD(wParam) == ID_SEND)
				{
				/*	char *buf = new char[GetEditTextLength(GetDlgItem(hwnd,IDC_TOSEND))];
					buf = WindowText(GetDlgItem(hwnd,IDC_TOSEND));
					Sock.sendData(buf);
					SetWindowText(GetDlgItem(hwnd,IDC_SHOW),buf);
					*/
					Sock.sendData(&quot;blablub&quot;);
				}
				return TRUE;
			case WM_CLOSE:
				EndDialog(hwnd,0);
		}  
		return FALSE;
	}
</code></pre>
<p>erst klick ich auf verbinden(IDOK) und krieg ne msg(konnte zu blabla verbinden...)<br />
dann auf senden(ID_SEND)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554672</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Tue, 06 Jul 2004 16:31:13 GMT</pubDate></item><item><title><![CDATA[Reply to methode die socket verbindet? on Tue, 06 Jul 2004 17:06:41 GMT]]></title><description><![CDATA[<p>da haben wir doch schon das Problem, manchmal muß man wirklich erst den entscheidenden Code-Teil sehen, um einen Fehler ausmachen zu können:</p>
<p>du erstellst mit jedem Aufruf der MakeProc einen neuen Socket (ein neues MakeSockets-Objekt), der erste wird sogar beim WM_INITDIALOG erzeugt, der zweite bei der Verarbeitung von WM_COMMAND-Nachrichten usw...d.h., jede Nachrichtenbehandlung in der MakeProc führt zu einem neuen MakeSockets-Objekt, und damit greift die Behandlung von ID_SEND zwar auf ein MakeSockets-Objekt zu, für das aber kein Connect aufgerufen wurde (-&gt;...is not a socket, der Connect wurde nur für das Objekt aufgerufen, das bei der Verarbeitung von IDOK erzeugt wurde). Eine Lösung: du kannst ein globales MakeSockets-Objekt erzeugen, und dieses wird dann in der MakeProc verwendet, und dann funktioniert das auch mit dem Senden.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554686</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 06 Jul 2004 17:06:41 GMT</pubDate></item><item><title><![CDATA[Reply to methode die socket verbindet? on Tue, 06 Jul 2004 17:42:09 GMT]]></title><description><![CDATA[<p>OO du hast recht! man bin ich blöd <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="😃"
    /><br />
dankeee <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 />
wie mache ich nen prototyp vonna class?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554704</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Tue, 06 Jul 2004 17:42:09 GMT</pubDate></item><item><title><![CDATA[Reply to methode die socket verbindet? on Tue, 06 Jul 2004 19:46:18 GMT]]></title><description><![CDATA[<p>... oder einfach static machen <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/554774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554774</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 06 Jul 2004 19:46:18 GMT</pubDate></item></channel></rss>