ist TcpListener(Port) veraltet

kleiner_mann

Grünschnabel
Hallo zusammen,
ich fang grad an mir C# beizubrignen und hab mir auch ein Buch gekauft "C# Das Grundlagen Buch" von Data Becker und da wollt ich jetzt ein kleinen Webserver nachbauen.
Ich habs genauso abgetippt wie es im Buch steht. Aber jetzt kommt die Meldung das der Befehlt "new TcpListener (Port); " obsolet ist, also veraltet.
Ich hab auch schon fleißig gesucht und rausgefunden das da jetzt noch die IP-Adresse mit rein muss, habs aber nicht hinbekommen.
Kann mir einer sagen wie ich die da mit einbauen kann?
mfg Philipp
 
Wie gesagt ich habe gesucht und war auch schon auf der Seite. Is fürn Anfäger nur schwer zu verstehen ... und dafür ist ein Forum ja da um nachzufragen.

So weit ich das jetzt verstanden habe, habe ich den Quellcode geändert.
Das Programm läuft jetzt zwar macht aber nich das was es machen soll :)

Findet jemand den fehler?

Code:
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;


public class kap28_02{
	public static void Main() {
		const int Port = 80;
                 IPAddress localAddr = IPAddress.Parse("127.0.0.1");
  
		string str = "HTTP/1.1 200 OK\nContent-type: text/html\n\n";
		str+= "<center><h1>Gehen sie weg!</h1></center>";
		
		TcpListener tl = new TcpListener (localAddr, Port);
		tl.Start();
		Console.WriteLine("Warte auf Verbindungsaufbau.");
		try{
			TcpClient tc = tl.AcceptTcpClient();
			Console.WriteLine("Verbindung hergestellt.");
			NetworkStream networkStream = tc.GetStream();
			Byte[] b = Encoding.ASCII.GetBytes(str);
			networkStream.Write(b, 0, b.Length);
			tc.Close();
			tl.Stop();
		}
		catch (Exception e){
			Console.WriteLine(e);
		}
	}
}
 
Es kommt immer drauf an, WAS gefragt wird. In Deinem Fall war es eine Frage, welche die MSDN locker beantworten kann. Du hast nach der Methode gefragt und da kann man sich ja angucken, was alles übergeben werden kann.

Ich weiß jetzt auch nicht was genau du willst was das Teil tun soll, der Code funktioniert nämlich. Aber vielleicht hast einen anderen Dienst auf Port 80 laufen und es funktioniert deshalb nicht. Stell mal den Port auf 81 und connecte dich mit dem Browser auf http://localhost:81/ und du wirst sehen, dass es funktioniert.
 
Hallo.

So wie du dein Programm nun hast, werden nur Anfragen vom selben PC beantwortet, da es nur am localhost horcht!

Man muss beim TcpListener nun angeben, auf welcher ip/auf welchem Gerät gelauscht werden soll.

Soll es im Netzwerk gehen, muss es auf die Netzwerkip des PC lauschen, solls auchs fürs Internet gehen, musst du beim TcpListener die externe IP angeben.

MfG,
Alex
 
so ich bins nochmal :)

Als nächstes will ich einen ganz simplen Chat machen.
Das Beispiel aus meinem Buch geht, wenn ich wie oben bei TcpListener die IP-Adresse mit einfüge.
Aber wenn ich jetzt die IP-Adresse nicht kennen (übers Internet) dann hab ich ein Problem. Im Buch geht das mit dem 'alten' TcpListener ganz einfach. Auch die Beispiele die ich gefunden hab LINK haben nur den Port drinn.
Wie kann man das jetzt schaffen das er nur auf den Port achtet und nich auf die IP-Adresse?

MfG Philipp
 
Hi.

Du solltest ansich immer noch den Konstruktor des TcpListeners, welcher nur den Port fordert, verwenden, und die Meldung ignorieren können.

MfG,
Alex
 
Stimmt, es läuft.
Aber ich muss die .exe selber startet weil SharpDevelop das wegen dem Fehler nicht macht.
Kann man Fehler in SharpDevelop ignorieren lassen?

MfG Philipp

[Edit]

läuft doch nich :( Es war eine alte .exe dich ich gestartet habe.
Kann man jetzt SharpDevelop dazu bringen das zu kompilieren trotz Fehler?
Oder gibt es da einen neuen Befehl für?

Mfg Philipp

[/Edit]
 
Zuletzt bearbeitet:
Dann wird die Option "Warnungen als Fehler behandeln" aktiviert sein.

In den Projektoptionen unter Konfigurationen -> Debug/Release -> Codegeneration kannst du dies ändern.
 
Hi,
ich finde die Option nicht habe Version 1.0 Build 0.1139.
Ich habe aber auch kein Projekt gestartet sondern nur 2 einzenle .cs dateien könnte das daran liegen?

MfG Philipp
 
Zurück