Ich möchte eine C# -Chat-ähnliche App erstellen, in der Sie eine Zeichenfolge in die Client-Konsole eingeben und in der Serverkonsole empfangen können.C# Console-Anwendung über das Internet gepaart
Was ich meine: Benutzer B führt das Clientprogramm auf seinem Computer aus, der sich irgendwo anders als bei Benutzer A befindet. Das Clientprogramm verbindet über TCP mit dem Serverprogramm, das Benutzer A auf seinem Computer geöffnet hat. Wenn Benutzer B im Programm eine Zeichenfolge eingibt und die Eingabetaste drückt, sollte Benutzer A die Zeichenfolge über das Internet empfangen.
Ich habe so etwas wie das:
Server:
static void Main(string[] args)
{
Console.WriteLine("Start Server ...");
IPAddress b = IPAddress.Any;
TcpListener Server = new TcpListener(b, 5550);
Server.Start();
Console.WriteLine("Server started.");
Console.WriteLine("Wait for Connection...");
TcpClient Client = Server.AcceptTcpClient();
Console.WriteLine("Succeeded");
Stream MessageStream = Client.GetStream();
while (true)
{
byte[] message = new byte[4096];
int bytesRead;
try
{
bytesRead = MessageStream.Read(message, 0, 4096);
ASCIIEncoding encoder = new ASCIIEncoding();
Console.WriteLine(encoder.GetString(message, 0, bytesRead));
}
catch (IOException)
{
break;
}
}
Client.Close();
Server.Stop();
}
Auftraggeber:
static void Main(string[] args)
{
IPAddress IP = IPAddress.Parse("192.168.2.140");
TcpClient Client = new TcpClient();
Client.Connect(IP, 5550);
Stream MessageStream = Client.GetStream();
Console.WriteLine("Success");
ASCIIEncoding encoder = new ASCIIEncoding();
Console.WriteLine("Enter Text here");
var input = Console.ReadLine();
if(input != null)
{
byte[] buffer = encoder.GetBytes(input);
MessageStream.Write(buffer, 0, buffer.Length);
MessageStream.Flush();
}
Console.ReadLine();
}
Wenn ich führen Sie den Client auf meinem PC und dem Server auf meinem Laptop funktioniert es gut, aber wie funktioniert es mit außerhalb meines lokalen Netzwerk-Computers?
Als ich
ersetzt IPAddress IP = IPAddress.Parse("192.168.2.140");
mit dem WAN-IP, die ich von canihazip.com bekommen, will es nicht verbinden.
EDIT:
erraten aktiviertDas Problem ist: Es ist im lokalen Netzwerk bei mir zu Hause arbeitet, wie ich will, es verbindet, ich einen Text schreiben kann, die erscheint in der Server-Anwendung. Aber wenn ich einige meiner Freunde frage, dieses zu versuchen, können sie Verbindung zu meinem Server nicht herstellen.
Das klingt nach einem Netzwerkproblem - stellen Sie sicher, dass Ihr isp Sie nicht blockiert hat und dass Ihr Router diese Ports entsprechend weitergeleitet hat. –
Keine Programmierfrage, das ist wirklich eine IT-Frage. – BradleyDotNET
@ DanielA.White Siehe Bearbeiten meines Posts, es unterstützt Post-Forwarding. Wie ich erwähnt habe, funktioniert es in meinem lokalen Netzwerk, aber außerhalb davon, wenn ich einige meiner Freunde frage, es zu versuchen, kann der Client von ihrem Netzwerk zu meinem Server App – Flauschcoder