vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Problem mit TcpListener 
Autor: Preisser
Datum: 07.06.11 01:32

Hallo,

also was mir auffällt, ist, dass im Server zwar für jede eingehende Verbindung ein neuer Thread gestartet wird, der vom Stream der Verbindung liest; allerdings erst, nachdem der Thread, der die eingehenden Verbindungen entgegen nimmt, eine Zeile gelesen hat. Es könnte doch nun sein, dass sich ein Client verbindet, aber überhaupt nichts sendet (könnte auch bei Verbindungsproblemen der Fall sein). Dann bleibt der Thread in der Zeile
c.nick = c.streamr.ReadLine
stecken und kann keine weiteren, eingehenden Verbindung mehr bearbeiten. Für die Clients, die sich danach verbinden wollen, sieht es so aus, als würde der Server nicht mehr reagieren (wobei der Server weiterhin Verbindungen akzeptiert, nur kann der Thread sie nicht verarbeiten).

Das Lesen der Zeile sollte eigentlich auch in dem Thread stattfinden, der die weiteren Zeilen liest, damit der Hauptthread nicht solange blockiert ist (also z.B. in der Sub ListenToConnection). Der Zugriff auf globale Objekte wie z.b. die Liste, zu der die Clients hinzugefügt werden, muss dann entsprechend synchronisiert werden (SyncLock), da ja gleichzeitig verschiedene Threads darauf zugreifen können. Und ein Thread.Sleep würde ich auch nicht verwenden, da das auch den Thread nur unnötig blockiert.

Beitrag wurde zuletzt am 07.06.11 um 01:43:04 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem mit TcpListener1.464Daddaaff06.06.11 23:30
Re: Problem mit TcpListener831Preisser07.06.11 01:32
Re: Problem mit TcpListener853Daddaaff07.06.11 02:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel