Erstmal :uli !
So. Um mal ein weinig Licht ins dunkel zu bringen poste ich hier mal das Script, denn laut
müsste es mit der WAN IP ja funktionieren.
SERVER:
Imports System.Net.Sockets
Imports System.Text
[...]
Private SimpleServer As TcpListener
Private Client As New TcpClient
Private Stream As NetworkStream
Dim bytes() As Byte
Private Sub OnConnect(ByVal ar As System.IAsyncResult)
Client = SimpleServer.EndAcceptTcpClient(ar)
Stream = Client.GetStream
ReDim bytes(Client.ReceiveBufferSize)
Stream.BeginRead(bytes, 0, CInt(Client.ReceiveBufferSize), AddressOf onGetData, New Object)
End Sub
Private Sub onGetData(ByVal ar As System.IAsyncResult)
Dim clientdata As String = Encoding.ASCII.GetString(bytes)
MsgBox(clientdata)
Stream.BeginRead(bytes, 0, CInt(Client.ReceiveBufferSize), AddressOf onGetData, New Object)
End Sub
Private Sub Startbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Startbutton.Click
SimpleServer = New TcpListener(System.Net.IPAddress.Parse(ipbox.Text), portbox.Text)
SimpleServer.Start()
SimpleServer.BeginAcceptTcpClient(AddressOf OnConnect, New Object)
End Sub
CLIENT:
Imports System.Net.Sockets
Imports System.Text
[...]
Private SimpleClient As New TcpClient
Private Stream As NetworkStream
Dim bytes() As Byte
Private Sub senttext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles senttext.Click
Stream = SimpleClient.GetStream
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(textbox.Text)
Stream.Write(sendBytes, 0, sendBytes.Length)
ReDim bytes(SimpleClient.ReceiveBufferSize)
Stream.BeginRead(bytes, 0, CInt(SimpleClient.ReceiveBufferSize), AddressOf onGetData, New Object)
End Sub
Private Sub onGetData(ByVal ar As System.IAsyncResult)
Dim clientdata As String = Encoding.ASCII.GetString(bytes)
MsgBox(clientdata)
Stream.BeginRead(bytes, 0, CInt(SimpleClient.ReceiveBufferSize), AddressOf onGetData, New Object)
End Sub
Private Sub connectbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles connectbutton.Click
SimpleClient.Connect(ipbox.Text, portbox.Text)
End Sub
So.
@Crash2001 jetzt müsste doch in die 'ipbox' meine WAN IP rein. Sowohl beim Server als auch beim Client, denn ich will ja den Server aufmachen und der Client soll ja mit mir connecten. Der Port ist ebenfalls der gleiche.
Das Problem ist, das ich nun beim eintragen meiner WAN IP beim SERVER diesen Fehler erhalte:
Die angeforderte Adresse ist in diesem Kontext ungültig
und das dann der Clinet nicht funzt ist klar.
Doch was hat nun die Portfreigabe damit zu tun?
Angenommen meine WAN IP vom Provider ist 123.123.123.123 und meine Private IP vom Router ist 198.198.198.198
Wenn ich nun auch noch eine Portfreigabe verwende:
von Port [13000] bis Port [13000]
an IP-Adresse [198.198.198.198]
an Port [13000]
Und der Server wie auch der Client dem PORT 13000 zugeordnet sind.
WELCHE IP muss ich nun beim Server und welche beim Client angeben?