Benutzer mit den meisten Antworten
TCP Probleme

Frage
-
Hallo zusammen
Ich habe einen Server und einen Client mit den Klassen TCP-Server und TCP-Client unter C# programmiert
Die Verbindung funktioniert wunderbar.
Nun zu meinen Problem. Ich möchte auf meine Client-PC ein Verzeichnis öffnen,das aber auf meiner Server-Pc existiert
Funktioniert so etwas überhaupt?
Gibt es dafür schon fertige Klassen ?
mfg
Antworten
-
I) Ich sehe zu deiner Anforderung keinen Sinn ein eigenes Programm dazu zu machen
Ia) Vor allem da du meintest, dass du mit c# eine TCP-Verbdinung erstellt hättest, wozu dass, nur um Process.Start zu verwenden?
II) Für weitere Informatione über die Freigabe von Ordern unter Windows, nutze bitte diese beiden Links:
- [Computer Bild] Windows-Heimnetzwerk: Ordner-Freigabe und -Zugriff
- [Netzwerk Total] Netzwerkkonfiguration und Ordnerfreigabe unter Windows 7
III) Wen du dazu weitere Fragen haben solltest, dann ist möglicherweise nicht das Entwicklerforum das richtige für dich, sondern das Microsoft-Forum.
© 2015 Thomas Roskop
Germany // Deutschland
- Bearbeitet Thomas Roskop Sonntag, 25. Januar 2015 20:11
- Als Antwort vorgeschlagen Aleksander Chalabashiev Freitag, 30. Januar 2015 11:30
- Als Antwort markiert Aleksander Chalabashiev Mittwoch, 4. Februar 2015 08:48
-
Ich stimme Thomas soweit zu und möchte nur noch ergänzen, das du einfach den Pfad an die Start-Methode übergeben musst:
Process.Start(@"\\SERVER-NAME\Austausch");
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Aleksander Chalabashiev Freitag, 30. Januar 2015 11:30
- Als Antwort markiert Aleksander Chalabashiev Mittwoch, 4. Februar 2015 08:48
Alle Antworten
-
Wie kann man das verstehen?
Du hast ein Verzeichnis auf dem Server, welches du im Clienten anzeigen möchtest, richtig?
Also quasi eine Art Dateiexplorer für einen anderen Rechner.
Also funktionieren wird es auf jedenfall, das sieht man an anderen Konzepten wie: FTP-Protokoll (ja, ich weiß, dass das Protokoll doppelt gemoppelt ist), SSH (Secure Remote Shell bei servern) und Onlinefestplatten.
Du könntest doch, je nachdem wie dein Protokoll dazwischen aufebaut ist, eine Anfrage vom Clienten an den Server senden in der Form: <Command: ListDirectory><Target: C:\> und dein Progrogramm sucht dann alle Dateien/unterorder im Order "Target" und gibt diese zurück, also Liste am besten in der Form: <Directorys: { Windows, Programm Files, ... }><Files: { MyData.txt ... }>
Und es gibt sozusagen bereits fertige Klassen. So kannst du dabei mit der Klasse DirectoryInfo alle Informationen über Dateien/Order in einem Order dir anzeigen lassen.
© 2015 Thomas Roskop
Germany // Deutschland
-
Hallo,
was genau meinst du mit "Verzeichnis öffnen"? Im Zusammenhang mit TCP ergibt das für mich erstmal keinen Sinn. Du könntest Serverseitig die Befehle der TCP-Verbindung verarbeiten und ggf. Informationen über ein Verzeichnis an den Client senden, ich weiß aber nicht ob du das willst.Grundsätzlich klingt deine Frage erstmal so, als ob du einfach den Server-Pfad im Explorer öffnen willst. Das geht indem du einfach \\SERVER-NAME in dessen Adresszeile eintippst. Über die jeweiligen Freigaben kannst du dann auch auf das von dir gewünschte Verzeichnis zugreifen.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Wo genau liegt dann das Problem? Wenn du nicht weist wie man Ordner frei gibt, für Windows erfährst du es unter Freigeben von Dateien und Ordnern, für Linux funktioniert es irgendwie anders.
Am Client-PC musst du dann einfach den UNC-Pfad (\\SERVER-NAME\Pfad) aufrufen. Beachte, das SERVER-NAME der Name oder die IP des Servers im Netzwerk ist.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Wie das Grundsätzlich funktioniert weißt du aber, oder?
Der Zugriff muss über ein Programm des Clients erfolgen. Was in diesem Fall der Explorer ist.
Wenn der Ordner korrekt frei gegeben ist, kann der Client au ihn zugreifen. Ggf. mit vorheriger Authentifizierung.
PS: Was hat das ganze eigentlich noch mit C# zu tun?
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
ja weis ich
ich habe auch den explorer als programm angegeben
Ich verwende in C# den Befehl process.start
Wie genau kann ich mich authentifizieren?
Das ganze soll den Sinn haben,dass am Client PC ein User und ein pw eingegeben wird und dann öffnet sich der Ordner am Server PC
-
I) Ich sehe zu deiner Anforderung keinen Sinn ein eigenes Programm dazu zu machen
Ia) Vor allem da du meintest, dass du mit c# eine TCP-Verbdinung erstellt hättest, wozu dass, nur um Process.Start zu verwenden?
II) Für weitere Informatione über die Freigabe von Ordern unter Windows, nutze bitte diese beiden Links:
- [Computer Bild] Windows-Heimnetzwerk: Ordner-Freigabe und -Zugriff
- [Netzwerk Total] Netzwerkkonfiguration und Ordnerfreigabe unter Windows 7
III) Wen du dazu weitere Fragen haben solltest, dann ist möglicherweise nicht das Entwicklerforum das richtige für dich, sondern das Microsoft-Forum.
© 2015 Thomas Roskop
Germany // Deutschland
- Bearbeitet Thomas Roskop Sonntag, 25. Januar 2015 20:11
- Als Antwort vorgeschlagen Aleksander Chalabashiev Freitag, 30. Januar 2015 11:30
- Als Antwort markiert Aleksander Chalabashiev Mittwoch, 4. Februar 2015 08:48
-
Ich stimme Thomas soweit zu und möchte nur noch ergänzen, das du einfach den Pfad an die Start-Methode übergeben musst:
Process.Start(@"\\SERVER-NAME\Austausch");
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Aleksander Chalabashiev Freitag, 30. Januar 2015 11:30
- Als Antwort markiert Aleksander Chalabashiev Mittwoch, 4. Februar 2015 08:48