Autor Beitrag
Red2Devil
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 26.02.10 22:43 
Hallo,

ich möchte ein Programm schreiben, das Daten im Netzwerk zu einem anderen Rechner senden kann.
Ich weiß, dass es sowelche Programme 100 mal im Internet als Freeware gibt, jedoch bin ich dran C# zu lernen
und bin an dem Punkt Netzwerke angekommen.

Punkt 1:

Ich habe versucht über einen Prozess die arp-Tabelle abzurufen und zu speichern, um alle verfügbaren IPadressen zu bekommen. Zuvor hab ich nun noch eine Ping-schleife gebaut, die alle rechner im subnetz anpingen soll, da sonst die arp-tabelle nicht gefüllt ist und er keine Rechner anzeigt! Ich weiß leider nicht, ob es der richtige Weg ist bzw ob es es eine einfachere Methode gibt:

Ping-schleife und Arp-Tabelle:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
for (int i = 0; i < 200; i++)
{
     Ping pingSender = new Ping();
     PingOptions options = new PingOptions();
     options.DontFragment = true;
     String ip;
     ip = "192.168.1." + i.ToString();
     string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
     byte[] buffer = Encoding.ASCII.GetBytes(data);
     int timeout = 60;
     pingSender.SendAsync(ip, timeout, buffer, options);
     //pingSender.Dispose();
}


Die IP-Adressse (hier 192.168.1.xxx) soll später noch variabel von der eigenen IP aus gesteuert werden, sofern die Methode behaupt sinnvoll ist!

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Process proc = new Process();

proc.StartInfo.FileName = Environment.SystemDirectory + @"\arp.exe";
proc.StartInfo.Arguments = "-a";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;

proc.Start();

while (!proc.StandardOutput.EndOfStream)
{
    fullLine.Add(proc.StandardOutput.ReadLine());
}

proc.WaitForExit();
proc.Close();


Das ist der Prozess der die cmd mit der Arp-Tabelle aufruft, die später weiterverarbeitet wird!

-----------------------------------------------------------------------------------------------

Punkt 2:

Des weiteren versuch ich eine simple Connection per Socket aufzubauen, indem ich eine IP verscuhe per Socket zu verbinden! z.B. einen WebServer per IP oder Hostnamen. Jedoch bekomme ich immer die Exception zurück!

Socket-Verbindung:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
string iptext = lIP.Text;
string porttext = lPort.Text;
Socket connection = null;
try
{
    IPAddress ip = IPAddress.Parse(iptext);
    IPEndPoint ipEnd = new IPEndPoint(ip, Convert.ToInt32(porttext));
    connection = new Socket(ipEnd.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
    connection.Connect(ipEnd);
    if (connection.Connected)
    {
         ConnectionTA.Text = "Connection with " + iptext + " on Port " + porttext + " established!";
         connection.Close();
    }
}
catch (Exception esc)
{
    ConnectionTA.Text = "Fehler:\r\n" + esc.Message;
}



-----------------------------------------------------------------------------------------------

Ich hoffe, dass jemand mir ein paar Tipps und verbesserungen zu den besagten Problemen geben kann.

MFG

Marcel
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 27.02.10 13:36 
Moin!

Bitte erstelle für jede deiner Fragen ein separates Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt. Daher:
*geschlossen*

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.