Autor Beitrag
Pfammi
Hält's aus hier
Beiträge: 6

Win 7 ultimate

BeitragVerfasst: So 01.11.09 23:21 
Sali

Ich würde gerne mal herausfinden auf wievielen PCs (bei mir im Netzwerk) MSN gestartet ist.

Darum habe ich mir überlegt ich könnte doch mit den PCs eine Verbindung eingehen auf dem Port 1863 (Dieser nutzt MSN).
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
using System;
using ASOCKETLib;

namespace namespace1
{
  class Class1
  {
    [STAThread]
    static void Main(string[] args)
    {
      string strHost = "192.168.1.";
      Tcp objTcp = new Tcp();
      SocketConstants objConstants = new SocketConstants();
      System.Int32 numPort = 1234;
      objTcp.Protocol = objConstants.asSOCKET_PROTOCOL_TELNET;
      for(int x = 30; x< 50; x++)
      {
        strHost = "192.168.1." + x;
        objTcp.Connect( strHost, numPort );
        if( objTcp.LastError == 0 && objTcp.ConnectionState == objConstants.asSOCKET_CONNSTATE_CONNECTED )
        {
          Console.WriteLine( strHost );
          {
            objTcp.Disconnect();
          }
        }
      }
      string pause;
      pause = Console.ReadLine();
    }
  }
}


leider ist das alles sehr sehr langsam. Wie kann ich das beschleunigen?
Das selbe Problem habe ich bei meinem IP scanner.

schonmal danke


Moderiert von user profile iconChristian S.: Topic aus Off Topic verschoben am So 01.11.2009 um 22:24
Marmelade
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP, Windows7 Ultimate
C#
BeitragVerfasst: Mo 02.11.09 16:19 
Hallo Pfammi
Ich habe das selbe Problem auch mit meinem Portscanner. Ich habe mir da überlegt, dass man mehrere Threads generieren müsste die dann immer einen Port scannen.
Das dürfte die Sache beschleunigen. Ich vermute mal das du ein besserer Programmierer bist als ich (mach das nur aus Fun so ab und zu), also dürfte das mir ein bischen Nachdenken kein Problem sein.

PS: Solltest du das so in der Art machen, könntest du mir dann deinen Source-Code schicken? Damit ich verstehen kann wo mein Fehler liegt?
Pfammi Threadstarter
Hält's aus hier
Beiträge: 6

Win 7 ultimate

BeitragVerfasst: Di 03.11.09 01:17 
Hallo Marmelade

Leider muss ich dich endtäuschen... ich habe erst vor drei Wochen mit C# begonnen.
Google unterstützt mich da sehr xD.

Darum hats auch geklappt.
Es is noch sehr billig aufgebaut aber erfüllt vorerst seinen Zweck. Es gehen einfach 100 Fenster auf welche sich nach ein paar Sekunden wieder schliessen. Mit Ausnahme der IPs auf welchen der Port offen ist.

So siehts aus:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
using System;
using ASOCKETLib;

namespace namespace1
{
  class Class1
  {
    [STAThread]
    public static void Main(string[] args)
    {
      String[] parms = Environment.GetCommandLineArgs();
      foreach(string s in parms)
      {
        string strHost = "192.168.1.";
        Tcp objTcp = new Tcp();
        SocketConstants objConstants = new SocketConstants();
        System.Int32 numPort = 1234;
        objTcp.Protocol = objConstants.asSOCKET_PROTOCOL_TELNET;
        strHost = "192.168.1." + s;
        objTcp.Connect( strHost, numPort );
        if( objTcp.LastError == 0 && objTcp.ConnectionState == objConstants.asSOCKET_CONNSTATE_CONNECTED )
        {
          Console.WriteLine( strHost );
          string pause;  
          pause = Console.ReadLine();
          objTcp.Disconnect();
        }
      }
    }
  }
}


Diesem Programm werden nun Parameter übergeben.
Dafür habe ich ne Batch geschrieben...

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
@echo off
set cnt=1
:start
start port.exe %cnt%
if %cnt% EQU 100 goto ende
set /a cnt="cnt+1"
goto start
:ende

Noch intressant wie schnell man die Prozessorauslastung auf 100% kriegt xD
Pfammi Threadstarter
Hält's aus hier
Beiträge: 6

Win 7 ultimate

BeitragVerfasst: Di 03.11.09 10:14 
Endtäuschend...
das programm funktioniert bei mir unter win 7. unter win xp schiesst es nur Errors.
Woran liegt das?