C# Alle Rechner im Netz

Hallo,

Ich habe schon gegooglet komme nicht weiter,
1.Möchte alle Rechner im (w)lan auflisten die RTSP Server laufen haben (Port 554).
2.Wie öffne ich den Stream

Ich benutze VS 2010 express für WP

Danke Fred

Hallo!

Das Auffinden von Netzwerkdiensten erfolgt üblicherweise über spezielle Protokolle, bspw. Bonjour.
Wenn es so etwas bei Dir nicht gibt, bleibt eigentlich nur übrig, die IP-Adressen im fraglichen Bereich durchzuprobieren, ob dort ein RTSP-Server auf Port 554 lauscht, also eine Art abgespeckter Portscanner.
Unter .NET kannst Du z.B. mittels der Klasse TcpClient einen Connect auf die jeweilige IP-Adresse/Port-Kombination versuchen.
Wenn dieser Connect fehlschlägt, weisst Du, dass auf dem fraglichen Rechner kein RTSP läuft (zumindest nicht auf dem Standardport).
Falls Du die Verbindung herstellen kannst, müsstest Du ausprobieren, ob auch tatsächlich ein RTSP-Dienst an diesem Port lauscht.
Welche Anfragen konkret möglich sind und wie mögliche Antworten aussehen, kannst Du hier lesen.

Gruß,
Martin

Hallo,
So sieht der Code

private const int listenPort = 554;
private static void StartListener()
{
bool done = false;

UdpClient listener = new UdpClient(listenPort);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any,listenPort);

try
{
while (!done)
{
Console.WriteLine(„Waiting for broadcast“);
byte[] bytes = listener.Receive( ref groupEP);

Console.WriteLine(„Received broadcast from {0} :\n {1}\n“,
groupEP.ToString(),
Encoding.UTF8.GetString(bytes,0,bytes.Length));
}

}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
listener.Close();
}
}

public static int Main()
{
StartListener();

return 0;
}

leider gibt es da Fehlermeldung

Der Typ- oder Namespacename „UdpClient“ konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)

kennt jemand da ne Lösung?

Gruß Fred

Hallo Manfred,

entgegen meiner ersten (bereits wieder gelöschten) Antwort. Du benötigst im Normalfall lediglich eine using Direktive

using System.Net.Sockets;

Wenn das nicht fruchtet, prüfe bitte zusätzlich, ob unter den Projekt-Referenzen auch System.dll eingetragen ist. Das sollte standardmäßig der Fall sein, es kommt aber auch mal vor, dass diese fehlt.

Sobald die using Direktive fehlerfrei angenommen wird, kann es weitergehen.

Gruß
maria

Hallo Maria,

using System.Net.Sockets;

Ist ein getragen,

Wenn das nicht fruchtet, prüfe bitte zusätzlich, ob unter den
Projekt-Referenzen auch System.dll eingetragen ist. Das sollte
standardmäßig der Fall sein, es kommt aber auch mal vor, dass
diese fehlt.

Auch die System.dll ist im Projekt integriert

Gruß
Fred

Hallo Maria,

using System.Net.Sockets;

Ist ein getragen,

Was meinst du mit „eingetragen“? Wo ist das eingetragen? Das Code-Sample, ist das die vollständige Source Datei? Dort muss die using directive rein.

Gruß
maria

Hallo,

So sieht momentan mein Code aus.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;


namespace PhoneApp1
{
 public partial class MainPage : PhoneApplicationPage
 {
 // Konstruktor
 public MainPage()
 {
 InitializeComponent();
 }

 }

 public class UdpClientSample
 {

 private const int listenPort = 554;
 private static void StartListener()
 {
 bool done = false;

 UdpClient listener = new UdpClient(listenPort);
 IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);

 try
 {
 while (!done)
 {
 Console.WriteLine("Waiting for broadcast");
 byte[] bytes = listener.Receive(ref groupEP);

 Console.WriteLine("Received broadcast from {0} :\n {1}\n",
 groupEP.ToString(),
 Encoding.UTF8.GetString(bytes, 0, bytes.Length));
 }

 }
 catch (Exception e)
 {
 Console.WriteLine(e.ToString());
 }
 finally
 {
 listener.Close();
 }
 }

 public static int Main()
 {
 StartListener();

 return 0;
 }

 }
}

Gruß Fred

Hallo Fred,

Achso, es geht um eine Windows Phone App. Die Klasse UdpClient ist „not supported“ für Windows Phone 8. Wie es trotzdem gehen kann steht ->hier.

Gruß
maria