<?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[Portscanner,Thread-&amp;gt;CAsyncSocket::Create()]]></title><description><![CDATA[<p>Hallo<br />
ich schreibe grad einen kleinen Portscanner.</p>
<p>Aufgebaut habe ich das Teil so:<br />
Ich habe ein Dialog in dem sich 3 CIPAddressCtrls befinden,<br />
das erste für die StartIP, das zweite für die letzte IP die gescannt werden soll und das dritte zeigt immer an welche Ip gerade gescannt wird.</p>
<p>Jetzt habe ich einen Thread (CWinThread) namens &quot;MyPortScanThread&quot; in mein Projekt aufgenommen.</p>
<p>In diesem Thread werden in InitInstance meine ganzen IPs die er scannen soll in mehreren Schleifen durchgegangen und in dem Feld dass jeweils die aktuell zu scannende anzeigen soll, angezeigt.</p>
<p>So nun sollen meine ganzen IPs ja auch gescannt werden, also hab ich in mein Projekt die Klasse CScanSocket vom Typ CAsyncSocket aufgenommen.<br />
damit ich ein Socket habe mit dem ich überhaupt versuchen kann eine Verbindung mit dem jeweiligen Port und der IP herzustellen.</p>
<p>So nun bin ich hergegangen und habe in meinen Thread eine Funktion geschrieben:</p>
<pre><code class="language-cpp">ScanPort(BYTE BLOCK1,BYTE BLOCK2,BYTE BLOCK3,BYTE BLOCK4,int Port)
</code></pre>
<p>diese Funktion muss ich nun immer aufrufen wenn ich eine IP scannen will.<br />
Damit diese Funktion aber überhaupt auf mein Socket zugreifen kann, bin ich in die Header Datei meines threads gegangen und habe die Variable m_sScanSocket deklariert(&quot;ScanSocket.h&quot; ist natürlich vorher includiert worden):</p>
<pre><code class="language-cpp">CScanSocket *m_sScanSocket;
</code></pre>
<p>nun kann ich meine Scan funktion komplett schreiben: sie sieht am Ende so aus:</p>
<pre><code class="language-cpp">void MyPortScanThread::ScanPort(BYTE BLOCK1,BYTE BLOCK2,BYTE BLOCK3,BYTE BLOCK4,int Port)
{
	 m_sScanSocket = new CScanSocket;
	 CString strIP; 
     strIP.Format(&quot;%d.%d.%d.%d&quot;,BLOCK1,BLOCK2,BLOCK3,BLOCK4); 
	 m_sScanSocket-&gt;Create();
     m_sScanSocket-&gt;Connect(strIP,Port);
	 m_sScanSocket-&gt;Close();
	 delete m_sScanSocket;
}
</code></pre>
<p>Bisher alles Korrekt?<br />
Ne Leider Nicht weil sobald ich in meiner Funktion ScanPort</p>
<pre><code class="language-cpp">m_sScanSocket-&gt;Create();
</code></pre>
<p>aufrufe stürzt meine Anwendung ab.</p>
<p>Und sagt mir:</p>
<blockquote>
<p>Unhandled exception at 0x00549cec in Portscanner.exe: 0xC0000005: Access violation reading location 0x00000004.</p>
</blockquote>
<p>ein Teil des Codes wo er stehen bleibt wenn ich bei der Fehlermeldung auf Breake drücke:</p>
<pre><code class="language-cpp">void* CMapPtrToPtr::GetValueAt(void* key) const
// find value (or return NULL -- NULL values not different as a result)
{
	if (m_pHashTable == NULL) //Hier drauf steht der gelbe Pfeil 		return NULL;

	UINT nHash = HashKey(key) % m_nHashTableSize;

	// see if it exists
	CAssoc* pAssoc;
</code></pre>
<p>Was ist Falsch? kann mir jemand helfen?</p>
<p>hier mal meine Cpp vom Socket noch</p>
<pre><code class="language-cpp">// ScanSocket.cpp : implementation file
//

#include &quot;stdafx.h&quot;
#include &quot;Portscanner.h&quot;
#include &quot;ScanSocket.h&quot;

// CScanSocket

CScanSocket::CScanSocket()
{
	//Create();
	//AfxMessageBox(&quot;test&quot;);
}

CScanSocket::~CScanSocket()
{
	//Close();
}

void CScanSocket::OnConnect(int nErrorCode)
{

	CString IP;
	UINT Port;
	GetPeerName(IP,Port);
	AfxMessageBox(IP+&quot;\n Positive resonanz!&quot;);

   CAsyncSocket::OnConnect(nErrorCode);
}
</code></pre>
<p>Bitte helft mir, ich weis nimmer was los ist <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/topic/56746/portscanner-thread-gt-casyncsocket-create</link><generator>RSS for Node</generator><lastBuildDate>Tue, 02 Jun 2026 09:39:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/56746.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 Nov 2003 15:20:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Portscanner,Thread-&amp;gt;CAsyncSocket::Create() on Fri, 28 Nov 2003 15:20:47 GMT]]></title><description><![CDATA[<p>Hallo<br />
ich schreibe grad einen kleinen Portscanner.</p>
<p>Aufgebaut habe ich das Teil so:<br />
Ich habe ein Dialog in dem sich 3 CIPAddressCtrls befinden,<br />
das erste für die StartIP, das zweite für die letzte IP die gescannt werden soll und das dritte zeigt immer an welche Ip gerade gescannt wird.</p>
<p>Jetzt habe ich einen Thread (CWinThread) namens &quot;MyPortScanThread&quot; in mein Projekt aufgenommen.</p>
<p>In diesem Thread werden in InitInstance meine ganzen IPs die er scannen soll in mehreren Schleifen durchgegangen und in dem Feld dass jeweils die aktuell zu scannende anzeigen soll, angezeigt.</p>
<p>So nun sollen meine ganzen IPs ja auch gescannt werden, also hab ich in mein Projekt die Klasse CScanSocket vom Typ CAsyncSocket aufgenommen.<br />
damit ich ein Socket habe mit dem ich überhaupt versuchen kann eine Verbindung mit dem jeweiligen Port und der IP herzustellen.</p>
<p>So nun bin ich hergegangen und habe in meinen Thread eine Funktion geschrieben:</p>
<pre><code class="language-cpp">ScanPort(BYTE BLOCK1,BYTE BLOCK2,BYTE BLOCK3,BYTE BLOCK4,int Port)
</code></pre>
<p>diese Funktion muss ich nun immer aufrufen wenn ich eine IP scannen will.<br />
Damit diese Funktion aber überhaupt auf mein Socket zugreifen kann, bin ich in die Header Datei meines threads gegangen und habe die Variable m_sScanSocket deklariert(&quot;ScanSocket.h&quot; ist natürlich vorher includiert worden):</p>
<pre><code class="language-cpp">CScanSocket *m_sScanSocket;
</code></pre>
<p>nun kann ich meine Scan funktion komplett schreiben: sie sieht am Ende so aus:</p>
<pre><code class="language-cpp">void MyPortScanThread::ScanPort(BYTE BLOCK1,BYTE BLOCK2,BYTE BLOCK3,BYTE BLOCK4,int Port)
{
	 m_sScanSocket = new CScanSocket;
	 CString strIP; 
     strIP.Format(&quot;%d.%d.%d.%d&quot;,BLOCK1,BLOCK2,BLOCK3,BLOCK4); 
	 m_sScanSocket-&gt;Create();
     m_sScanSocket-&gt;Connect(strIP,Port);
	 m_sScanSocket-&gt;Close();
	 delete m_sScanSocket;
}
</code></pre>
<p>Bisher alles Korrekt?<br />
Ne Leider Nicht weil sobald ich in meiner Funktion ScanPort</p>
<pre><code class="language-cpp">m_sScanSocket-&gt;Create();
</code></pre>
<p>aufrufe stürzt meine Anwendung ab.</p>
<p>Und sagt mir:</p>
<blockquote>
<p>Unhandled exception at 0x00549cec in Portscanner.exe: 0xC0000005: Access violation reading location 0x00000004.</p>
</blockquote>
<p>ein Teil des Codes wo er stehen bleibt wenn ich bei der Fehlermeldung auf Breake drücke:</p>
<pre><code class="language-cpp">void* CMapPtrToPtr::GetValueAt(void* key) const
// find value (or return NULL -- NULL values not different as a result)
{
	if (m_pHashTable == NULL) //Hier drauf steht der gelbe Pfeil 		return NULL;

	UINT nHash = HashKey(key) % m_nHashTableSize;

	// see if it exists
	CAssoc* pAssoc;
</code></pre>
<p>Was ist Falsch? kann mir jemand helfen?</p>
<p>hier mal meine Cpp vom Socket noch</p>
<pre><code class="language-cpp">// ScanSocket.cpp : implementation file
//

#include &quot;stdafx.h&quot;
#include &quot;Portscanner.h&quot;
#include &quot;ScanSocket.h&quot;

// CScanSocket

CScanSocket::CScanSocket()
{
	//Create();
	//AfxMessageBox(&quot;test&quot;);
}

CScanSocket::~CScanSocket()
{
	//Close();
}

void CScanSocket::OnConnect(int nErrorCode)
{

	CString IP;
	UINT Port;
	GetPeerName(IP,Port);
	AfxMessageBox(IP+&quot;\n Positive resonanz!&quot;);

   CAsyncSocket::OnConnect(nErrorCode);
}
</code></pre>
<p>Bitte helft mir, ich weis nimmer was los ist <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/403985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/403985</guid><dc:creator><![CDATA[BigMama2k]]></dc:creator><pubDate>Fri, 28 Nov 2003 15:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to Portscanner,Thread-&amp;gt;CAsyncSocket::Create() on Sat, 29 Nov 2003 11:28:23 GMT]]></title><description><![CDATA[<p>Hat glaub ich was mit den Threads zu tun.<br />
Machs doch einfach so:</p>
<pre><code class="language-cpp">void MyPortScanThread::ScanPort(BYTE BLOCK1,BYTE BLOCK2,BYTE BLOCK3,BYTE BLOCK4,int Port) 
{ 
     CScanSocket sScanSocket;
     CString strIP;  
     strIP.Format(&quot;%d.%d.%d.%d&quot;,BLOCK1,BLOCK2,BLOCK3,BLOCK4);  
     sScanSocket.Create(); 
     sScanSocket.Connect(strIP,Port); 
     sScanSocket.Close(); 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/404320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/404320</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Sat, 29 Nov 2003 11:28:23 GMT</pubDate></item><item><title><![CDATA[Reply to Portscanner,Thread-&amp;gt;CAsyncSocket::Create() on Sat, 29 Nov 2003 14:38:26 GMT]]></title><description><![CDATA[<p>Jo hat was mit den Threads zu tun, geht bzw ging aus den threads raus nicht, auf KEINE WEISE.</p>
<p>Mein Kumpel hat sowas schon gemacht und hat mir mal seine Lösung gegeben, selbst damit gings nicht.</p>
<p>Erst Als ich die Klasse CAsyncSoocket in eine Klasse von codeproject CAsyncSocketEx geändert habe hats funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/404410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/404410</guid><dc:creator><![CDATA[BigMama2k]]></dc:creator><pubDate>Sat, 29 Nov 2003 14:38:26 GMT</pubDate></item></channel></rss>