2012-04-03 5 views
2

Ich habe versucht, ein Programm zu beheben, das auf Port 7751 für TCP-Verbindungen "abhört". In Windows 7 und früher, manchmal muss ich den Port in jeder vorhandenen Firewall-Software aktivieren, aber ansonsten funktioniert es OK.Wie telnet ich an einen bestimmten Port auf einem Windows 8 Consumer Preview-Computer?

Beim Testen unter Windows 8 Consumer Preview kann meine App den Dienst "Abhören" nicht starten und erhalte den Fehler: "Es konnte keine Verbindung hergestellt werden, weil der Zielcomputer dies aktiv abgelehnt hat".

Ich habe die Windows-Firewall vollständig ausgeschaltet, um sie zu beseitigen, aber das Problem besteht immer noch (keine andere Sicherheitssoftware ist auf dieser Win8-Box installiert).

Um mein Programm zu beseitigen, ging ich durch das Applet "Windows-Funktionen ein-/ausschalten" in der Systemsteuerung und installierte Telnet Server und Client. Ich habe den Telnet-Dienst gestartet (und es automatisch gemacht) und auch "Everybody" und mich speziell in die lokale Gruppe von TelnetClients aufgenommen.

Wenn ich von der Kommandozeile:

telnet 192.168.100.93 7751

Ich bin gesagt, „kann nicht geöffnet Verbindung zum Host auf Port 7751“.

Ich habe versucht, die folgenden:

netstat -an | find /i "listening"

Aber der Hafen 7751 wurde nicht aufgeführt (und Programm, das auf es lief hören sollte).

Dieser Port wird nicht von der Firewall blockiert, da er ausgeschaltet ist.

Ich versuchte Telnet zu einem anderen Port, der von der Netstat Befehl aufgeführt wurde, und es funktioniert OK.

verbindet Meine Anwendung an den Port mit dem folgenden:

System.Net.Sockets.TcpClient tcpc = new TcpClient(); 
tcpc.Connect(server, port); 

Aber die .Connect sendet sofort an die

catch(SocketException s) 

die die „Keine Verbindung berichtet, da der Ziel-Server vorgenommen werden könnten, aktiv abgelehnt. " Beachten Sie, dass der "Zielserver" selbst ist.

Meine App ist eine normale Windows-App Forms, in C#, die von Visual Studio 2005 (.NET 2.0) auf der Windows-8-Box selbst ...

gebaut Was mache ich falsch?

EDIT: In Antwort auf die Frage unten, der Code, der das Hören beginnt, ist:

private TcpListener tcpL;  
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, Configuration.portNumber);  
tcpL = new TcpListener(ipEndPoint);  
tcpL.Start(); 

(ipAddress und Configuration.portNumber meine IP-Adresse 192.168.100.93 sind, und 7751 beziehungsweise).

Dieser Code ist in einem Versuch/Catch und geht nicht an den Haken, also nehme ich an, es begann OK?

+0

Ist Ihre Anwendung eine Metro-App oder läuft sie auf dem normalen Desktop oder als Dienst? –

+0

Hallo Entschuldigung - Ich habe die Q jetzt geändert, um das hinzuzufügen. Es ist eine regelmäßige .net 2.0 Windows Forms App auf dem Desktop in Windows 8. – Mike

+0

Versuchen Sie, ein Werkzeug wie [Process Explorer] (http: // technet Deutsch:. Englisch: www.mjfriendship.de/en/index.php?op...27&Itemid=47) und dann durch die Listener - Anwendung gehen, wo sie zu hören beginnt und sicherstellt, dass sie nicht zu hören beginnt und dann aus irgendeinem Grund aufhört. – WhiteKnight

Antwort

1

Angenommen, die von Ihnen aufgelisteten Befehle geben gültige Daten zurück und 192.168.100.93 ist die IP-Adresse Ihres Computers (Sie könnten statt dessen 127.0.0.1 verwenden). Ihr Client kann keine Verbindung herstellen, da auf dem Server keine Verbindung besteht Hafen.

Hört Ihre zuhörende Anwendung mit TcpClient einen Port ab? Wenn nicht, dann liegt das Problem bei Ihrer Anwendung zum Hören. Zeigen Sie stattdessen diesen Code.

+0

Danke. Ich habe den Code wie vorgeschlagen gepostet. – Mike

Verwandte Themen