Client-Server-Verbindung Probleme im WAN
-
Hallo,
Ich versuche mich an einem Chat, um ein wenig in Sachen
Multithreading und Sockets zu lernen.
Nun habe ich einen Client und einen Server.
Wenn ich die Client-Server Verbindung auf meinem
lokalen PC teste funktioniert alles einwandfrei.
Wenn der Client allerdings versucht sich über
das Internet von einem entfernten Rechner mit
meinen Chat Server zu verbinden, klappt dies nicht.
Mein Router ist so eingestellt, das er
Verbindungsanforderungen vom Client an dem richtigen
Port an meine LAN-Adresse 192.168.1.10 wo der Server liegt
weiterleitet.Hat vieleicht jemand eine Idee, wo das Problem ist ?
Client: ´
...... private void button2_Click(object sender, EventArgs e) { port = Int32.Parse(textBox3.Text); ipaddress = textBox2.Text; nick = textBox4.Text; try { server = new TcpClient(ipaddress, port); ns = server.GetStream(); StateObject state = new StateObject(); state.workSocket = server.Client; server.Client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(OnReceive), state); label3.Text = "Verbunden"; } catch (SocketException) { MessageBox.Show("Unable to connect to server"); } } ........
Server:
..... public void StartListen() { IPAddress localAddr = IPAddress.Parse("127.0.0.1"); tcpServer = new TcpListener(localAddr, Int32.Parse(tbPortNumber.Text)); tcpServer.Start(); while (true) { Thread t = new Thread(new ParameterizedThreadStart(NewClient)); tcpClient = tcpServer.AcceptTcpClient(); t.Start(tcpClient); } } ...........
Bin für jeden Denkanstoss dankbar
Pedro
-
Hallo
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
tcpServer = new TcpListener(localAddr, Int32.Parse(tbPortNumber.Text));
tcpServer.Start();Gibt bei localAddr die IP Adresse des Interfaces an, über welches Du kommunizieren möchtest. (So wie es jetzt ist, kannst Du nur Verbindungen via Loopback Interface annehmen). Es muss dieselbe IP Adresse sein, auf welche Du das Port Forwarding machst.
Gruss Simon
-
Hallo Simon,
vielen Dank. Jetzt klappt es.
Bis dann ...
Pedro