2016-05-18 23 views
0

Hier ist mein ServerC# TCP-Socket-Client verweigert Verbindung

Wenn mehrere verschieden Port Prüfwerkzeuge im Internet unter Verwendung von I-Verbindungen auf meinem Server zu erhalten, was zeigt, dass meine Ports offen sind

http://www.infobyip.com/tcpportchecker.php

http://www.yougetsignal.com/tools/open-ports/

http://ping.eu/port-chk/

http://ping.eu/port-chk/

Multiple successful connections

static void Main(string[] args) 
{ 
    IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); 
    IPAddress ipAddress = ipHostInfo.AddressList[0]; 
    IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, 10897); 
    Console.WriteLine("Server Start"); 

    Socket listener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); 
    listener.Bind(localEndPoint); 
    listener.Listen(10); 
    while (true) 
    { 
     Console.WriteLine("Waiting for a connection..."); 
     Socket handler = listener.Accept(); 
     Console.WriteLine(handler.RemoteEndPoint); 
     handler.Shutdown(SocketShutdown.Both); 
     handler.Close(); 
    } 
} 

Hier mein Client-Code ist

static void Main(string[] args) 
{ 
    IPEndPoint ip = new IPEndPoint(IPAddress.Parse("MY IP HERE"), 10897); 
    Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
    server.Connect(ip); 
} 

ich diesen Fehler jedes Mal bekommen, habe ich mehrere verschiedene Versuche von der Client-Seite mit System.Net.Sockets.TcpClient und Steckdosen versucht und jedes Mal, wenn ich die Verbindung ablehne, scheint es ein Problem mit meinem Client zu sein, da mein Server Verbindungen von Port-Checkern empfängt

Ich habe Dutzende andere Socket-Themen gelesen, aber alle Probleme haben mit dem Server und nicht mit dem Client zu tun. Ich habe keine Ahnung, was falsch ist, kann mir jemand helfen?

EDIT: ich über den Local Host verbinden kann (127.0.0.1), aber nicht von meinem öffentlichen IP

+0

Es besagt, dass der Server die Verbindung aktiv ablehnt. Dies bedeutet, dass der Server-PC die Verbindungsanforderung empfängt und ablehnt, bevor sie die Anwendungsebene erreicht. Das riecht nach einem Firewall-Problem. Ich weiß, dass du gesagt hast, dass du diese Online-Apps überprüft hast, aber ich schlage vor, dass du alle Firewalls und Antivirenprogramme, die du hast, komplett deaktivierst, dann führe deinen Test erneut aus. Wenn Sie eine Verbindung erhalten, kennen Sie nicht Ihren Code und können das Konfigurationsproblem beheben. –

+0

@William Morrison meine Firewall ist deaktiviert und ich habe keinen Anti-Virus – Swololol

+0

Dann ist das Problem auf der Netzwerkebene (Portweiterleitung oder eine Firewall auf einem Modem/Router). Versuchen Sie, wiresharking Ihren Server und überprüfen, ob Sie tatsächlich empfangen die TCP SYN Nachricht bitte? –

Antwort

0

Der Code funktioniert gut (die ersten beiden Zeilen des Servers nichts zu tun). Sie haben ein Firewall- oder Routing-Problem.

0

Es erscheint wurde die Frage meinen Router einige Einstellung hatte, dass es so gemacht, dass es keine internen Verbindungen zu den externen IP akzeptieren würde ich meinen Freund den Client-Code ausgeführt hatte und ihm verbundenen feinen

0

Es hat etwas mit Windows-Firewall-Ausnahme zu tun. Beim ersten Start sollten Sie aufgefordert werden, die Verbindung zuzulassen. Wenn Sie es zum ersten Mal zulassen, wird die Ausnahme in der Firewall erstellt. Vielleicht hast du es abgelehnt. Versuchen Sie auch, die erforderlichen Privilegien für Ihre Anwendung über app.manifest zu erhöhen.

Verwandte Themen