Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] Mehrere TCP Listener auf Port 80
Fridoo
myCSharp.de - Member



Dabei seit:
Beiträge: 48
Herkunft: Schweiz

Themenstarter:

[gelöst] Mehrere TCP Listener auf Port 80

beantworten | zitieren | melden

Hallo Forum

Ich arbeite an einem kleinem Chat.
Um alle Computer egal wie viele Router usw. dazwischen hängen zu erreichen verwende ich einen TCP Client über Port 80.
Da aber schon andere Listeners auf diesem Port existieren bekomme ich den Fehler mit der id 10013
Zitat
An attempt was made to access a socket in a way forbidden by its access permissions
Da Skype soweit ich weiss auch über den Port 80 arbeitet muss es eine Möglichkeit geben dies zu bewerkstelligen.
Hat jemand eine Idee wie ich dieses Problem umgehen könnte?


IPAddress ip = IPAddress.Parse(Server);
TcpListener tcp = new TcpListener(ip, Port);

tcp.Start();

Byte[] bytes = new Byte[256];
String data = null;
while (true)
{
    TcpClient client = tcp.AcceptTcpClient();
    data = null;
    NetworkStream stream = client.GetStream();
    int i;
    while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
    {
        data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
        DataReceived.Invoke((object)data, new EventArgs());
    }
    client.Close();
}
tcp.Stop();

Danke im voraus
Fridoo
Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Fridoo am .
private Nachricht | Beiträge des Benutzers
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 520
Herkunft: Henstedt-Ulzburg

beantworten | zitieren | melden

Hallo,

in Skype abschalten, dass es Port 80 nutzt ;-)

mfg.
markus111
private Nachricht | Beiträge des Benutzers
Fridoo
myCSharp.de - Member



Dabei seit:
Beiträge: 48
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

da auch noch andere Prozesse wie der System Prozess einen Listener auf Port 80 haben ist das abschalten der anderen Listener keine Lösung...
Die Lösung die ich suche wäre parallel mit den anderen Listeners zu arbeiten...
private Nachricht | Beiträge des Benutzers
Feuerfalke
myCSharp.de - Member

Avatar #avatar-2476.png


Dabei seit:
Beiträge: 133
Herkunft: Nürnberg

beantworten | zitieren | melden

Du bedenkst hoffentlich, und darauf weist auch die Meldung hin, dass du für privilegierte Prots normalerweise Adminrechte brauchst?
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
Zitat
da auch noch andere Prozesse wie der System Prozess einen Listener auf Port 80 haben
Welche wären das denn?
Wnne Du in der CMD mal
netstat -a
eintippst siehst Du die Ports,d ie abgehört werden.
Du wirst feststellen daß pro IP jeder Port nur maximal 1x geöffnet ist.
Wenn der Port von einem Programm bereits abgehört wird, kann ein zweites ihn nicht nochmal öffnen. Umgekehrt kann ein Programm aber mehrere Ports gleichzeitig öffnen.
Daß Skype Port 80 abhört, wage ich daher zu bezweifeln - es spricht eher Port 80 auf dem Skype-Server an.

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Fridoo
myCSharp.de - Member



Dabei seit:
Beiträge: 48
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
System 4 Services 0 556 K

Dies ist der Prozess der auf den Port 80 hört.

Denkt ihr einen DB-Server zu verwenden anstatt die Nachrichten über TCP zu versenden wäre sinnvoller?
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
Zitat
Dies ist der Prozess der auf den Port 80 hört.
Das dürfte ein Systemprozess sein, und die dahinterstehende Anwendung ist dann der IIS (wenn Du in den Diensten WWW-Publishing abschaltest, ist der weg).

Du brauchst den Port ja auch nur auf der Serverseite, wenn Du Dich mit einem Client verbinden willst, wird normalerweise ein Port vergeben, auf dem gesendet wird und die Antworten empfangen werden, da brauchst Du Dich nicht selbst drum kümmern.
Zitat
Denkt ihr einen DB-Server zu verwenden anstatt die Nachrichten über TCP zu versenden wäre sinnvoller?
Für einen Chat halte ich das für nicht zweckmäßig, da dann jeder Client direkt auf die DB zugreifen könnte.
Aber warum muss es denn ausgerechnet Port 80 sein? Das ist der Standard-HTTP-Port und ist auch auf sehr vielen Rechnern durch einen Webserver belegt.
Wenn Du unbedingt die 80 willst, darf also kein Webserver laufen (auf dem Rechner, auf dem Dein Chat-Server läuft).

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Fridoo
myCSharp.de - Member



Dabei seit:
Beiträge: 48
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Zitat
Das dürfte ein Systemprozess sein, und die dahinterstehende Anwendung ist dann der IIS
Nachdem der ISS nicht mehr lief funktionierte es.
Zitat
Aber warum muss es denn ausgerechnet Port 80 sein?
Ich verwende den Port 80 um den Standard Port-forwarding vom Router zu verwenden.
Somit komme ich auf alle Computer
Zitat
Wenn Du unbedingt die 80 willst, darf also kein Webserver laufen
Auf meinem Server wäre es kein Problem.

Da ich auf dem Server und dem Client je ein Listener und ein Sender brauche wäre immer noch das Problem das wenn auf dem Client einen Webserver läuft das der Listener da probleme macht...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Fridoo am .
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

warum brauchst Du auf dem Client einen Listener? Wenn Du eine Verbindung hergestellt hast, kannst Du darüber senden und empfangen, eine zweite Verbindung in der Gegenrichtung ist nicht nötig.

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Zicore
myCSharp.de - Member



Dabei seit:
Beiträge: 413

beantworten | zitieren | melden

Hallo Fridoo,

und wofür braucht die Client Seite noch Port 80 ?

Vielleicht erzählst du mal ein wenig ganauer was du vor hast.
Denn eigentlich wurde schon alles gesagt. Mehrere Listener auf einem Port funktionieren schlichtweg nicht.

André
private Nachricht | Beiträge des Benutzers
Fridoo
myCSharp.de - Member



Dabei seit:
Beiträge: 48
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Zitat
Wenn Du eine Verbindung hergestellt hast, kannst Du darüber senden und empfangen, eine zweite Verbindung in der Gegenrichtung ist nicht nötig.
Mir war bis jetzt nicht klar das ich nur einen Listener benötige um den Daten verkehr zu bewerkstelligen...

Wie kann ich den die Klasse TCP Client benutzen um Daten zu empfangen?
Oder benötige ich eine andere Klasse?
private Nachricht | Beiträge des Benutzers
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 520
Herkunft: Henstedt-Ulzburg

beantworten | zitieren | melden

Zitat von Fridoo
Zitat
Wenn Du eine Verbindung hergestellt hast, kannst Du darüber senden und empfangen, eine zweite Verbindung in der Gegenrichtung ist nicht nötig.
Mir war bis jetzt nicht klar das ich nur einen Listener benötige um den Daten verkehr zu bewerkstelligen...

Wie kann ich den die Klasse TCP Client benutzen um Daten zu empfangen?
Oder benötige ich eine andere Klasse?

Ja, solltest du können.
Dein Webbrowser startet ja auch keinen Server (TcpListenser) auf deinem Computer.

mfg.
markus111
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
Zitat
Wie kann ich den die Klasse TCP Client benutzen um Daten zu empfangen?
das steht in der FAQ:
[FAQ] TcpClient einfaches Beispiel

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Fridoo
myCSharp.de - Member



Dabei seit:
Beiträge: 48
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Vielen danke für die antworten
[COLOR]PS:
Wer hat die Aufgabe das Thema zu schliessen und wie?
[/COLOR]
private Nachricht | Beiträge des Benutzers
Zicore
myCSharp.de - Member



Dabei seit:
Beiträge: 413

beantworten | zitieren | melden

Zitat von herbivore
Liebe myCSharp-Benutzer,

ihr könnt anderen myCSharp-Benutzern das Leben und die Forumssuche erleichtern, wenn ihr eure Threads durch ein vorangestelltes [erledigt] im Titel als erledigt kennzeichnet, sobald das der Fall ist. Dazu einfach im ersten Beitrag des Threads auf 'Beitrag editieren' klicken, bei 'Thema:' das [erledigt] eintragen und den 'Beitrag speichern'. Statt [erledigt] könnt ihr natürlich auch [gelöst] verwenden, wenn das die Sache besser trifft, also insbesondere, wenn eine funktionierende und für andere nachvollziehbare Lösung des Problems auch wirklich explizit im Thread angegeben wurde.

Threads können nur von Moderatoren geschlossen werden. Dass ein Thread erledigt oder gelöst ist, ist jedoch kein Grund ihn zu schließen, da es immer sein kann, dass zu dem Thema im Nachhinein noch wichtige oder interessante Aspekte oder Ergänzungen auftauchen.

herbivore
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Zicore am .
private Nachricht | Beiträge des Benutzers