Autor |
Beitrag |
philipp-schoene
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 25.05.12 16:27
Hallo,
Ich möchte mich mal in das Thema Netzwerk mit C# einarbeiten. Mein Ziel ist es, dass ich ein Programm von mir übers Netz ansprechen kann. Ich hoffe, ich habe mir da nicht zuviel für den Anfang vorgenommen. (Als Beispiel würde erstmal auch ein Chat-Programm reichen)
ich habe in der Richtung nur vor Jahren mal was mit VB gemacht, aber weiß nicht mehr viel. Nur dass es mit Sockets war. Wie fange ich da am besten an? Alle Tutorials die ich gefunden habe, waren zu hoch für mich.
|
|
Th69
![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
![Moderator Moderator](graphics/ranks/mod.png)
Beiträge: 4780
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Fr 25.05.12 16:38
Hallo,
als Einstieg solltest du dir die Klassen TcpClient und TcpListener ansehen (diese sind etwas einfacher zu verwenden als die direkte Socket-Klasse).
Schau dir dazu auch mal die Kurztutorials unserer C-Sharp-Library an:
TcpClient: Asynchrones und Synchrones verbinden
TcpListener: Asynchrones und Synchrones verbinden
|
|
philipp-schoene ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 25.05.12 19:13
Was ist der Unterschied zwischen TcpClient, TcpListener und Sockets?
|
|
philipp-schoene ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 28.06.13 21:36
von MSDN habe ich folgenden Beispielcode:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| TcpListener listener = new TcpListener ( 4711 ); listener.Start (); TcpClient c = listener.AcceptTcpClient (); Stream inOut = c.GetStream (); c.Close (); listener.Stop (); |
ich möchte den Server lauschen lassen, und das später wieder beenden. Ich weiß nicht wo ich was hinschreiben muss. Ich benutze eine Form Anwendung. Kann mir bitte jemand helfen?
|
|
Th69
![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
![Moderator Moderator](graphics/ranks/mod.png)
Beiträge: 4780
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Sa 29.06.13 11:25
Hallo,
damit die GUI weiterhin bedienbar bleibt, während der Listener horcht, solltest du diesen Code in einen eigenen Thread (bzw. für WinForms in einen BackgroundWorker packen).
Oder aber wie in den Tutorials beschrieben, die asynchrone Variante wählen.
|
|
philipp-schoene ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
Hält's aus hier
Beiträge: 12
|
Verfasst: Sa 29.06.13 17:39
Irgendwie tue ich mich immer noch schwer. Ich habe mir das asynchrone Verfahren angesehen. Geht das nur über eine Klasse? Und mir ist noch nicht klar, wie die dann gesteuert wird. Aber um eine Klasse komme ich nicht herum, ist das richtig?
Ich habe folgenden Code. Leider bekomme ich schon einen Fehler, wenn ich das Programm beenden möchte.
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:
| TcpListener listener = new TcpListener(4711);
public frmServer() { InitializeComponent(); }
private void btnServerStarten_Click(object sender, EventArgs e) { backgroundWorker1.RunWorkerAsync(); }
private void frmServer_FormClosed(object sender, FormClosedEventArgs e) { listener.Stop(); }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { listener.Start(); TcpClient c = listener.AcceptTcpClient(); } |
|
|
philipp-schoene ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
Hält's aus hier
Beiträge: 12
|
Verfasst: Di 02.07.13 21:43
|
|
Th69
![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
![Moderator Moderator](graphics/ranks/mod.png)
Beiträge: 4780
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Mi 03.07.13 11:04
Was für eine Fehlermeldung erhältst du denn?
|
|
philipp-schoene ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
Hält's aus hier
Beiträge: 12
|
Verfasst: Mi 03.07.13 20:15
Eine direkte Fehlermeldung habe ich nicht. Ich wollte in die Thematik "Netzwerk" bzw "Netzwerkkommunikation" einsteigen, aber das ist kompliziert. Ich habe auch Probleme mit der GUI und Threads. Ich habe das mal mit Visual Basic 6. Aber das ist auch ein paar Jahre her. Da war es noch nicht so objektorientiert und es gab auch kein Threading. Deswegen der Hilferuf hier. Ich dachte mit einem einfachen Chatprogramm kann ich das lernen.
|
|
Th69
![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Th69 hat insgesamt 97.7% On-Topic und 2.3% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
![Moderator Moderator](graphics/ranks/mod.png)
Beiträge: 4780
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Mi 03.07.13 20:31
Hallo,
ich meinte diesen von dir beschriebenen Fehler
philipp-schoene hat folgendes geschrieben: | Leider bekomme ich schon einen Fehler, wenn ich das Programm beenden möchte. |
Aber vllt. hilft dir ja Basic Client/Server Chat Application in C# .
|
|
philipp-schoene ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
Hält's aus hier
Beiträge: 12
|
Verfasst: Mi 03.07.13 20:41
Das Beispiel sieht etwas umfangreicher aus. Wieso ist es so schwer mit der Kommunikation übers Netzwerk? zumindest empfinde ich das im Moment so.
Zitat: | System.Net.Sockets.SocketException wurde nicht von Benutzercode behandelt.
Message=Ein Blockierungsvorgang wurde durch einen Aufruf von WSACancelBlockingCall unterbrochen
Source=System
InnerException:
|
Das ist die Fehlermeldung, wenn ich den Server beende.
|
|