Hey,
ich habe eine Problem mit einer TCP Verbindung über das Internet. Erstmal zu dem Programm (nicht von mir sondern von SemperVideo) :
Lokal funktioniert es, nur sobald ich mir praktisch selbst etwas über das Internet senden möchte, bekomme ich die Fehlermeldung, dass der Zielcomputer die Verbindung verweigert. Jetzt sollte man wissen, dass ich einen Instant Messenger als Projektarbeit abgeben möchte, am Ende würde ich dann eine Client Anwendung haben und eine Serveranwendung.
Woran liegt es nun genau, dass ich praktisch keinen Zugriff auf den eigenen PC (über das Internet) habe ? Ich habe in der Windows Firewall den Port 5005 freigegeben. Liegt es jetzt am Router ? Wenn ja, kann man ja nicht von jedem Clientanweder erwarten, dass er erst den Router konfigurieren muss damit das Programm läuft, bei ICQ etc. funktioniert es schließlich auch so.
ich habe eine Problem mit einer TCP Verbindung über das Internet. Erstmal zu dem Programm (nicht von mir sondern von SemperVideo) :
VB.NET-Quellcode
- Imports System.Net.Sockets
- Imports System.Threading
- Imports System.IO
- Public Class Form1
- Dim listener As New TcpListener(5005)
- Dim client As TcpClient
- Dim message As String = ""
- Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
- listener.Stop()
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim listthread As New Thread(New ThreadStart(AddressOf listening))
- listthread.Start()
- End Sub
- Private Sub listening()
- listener.Start()
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- client = New TcpClient(TextBox1.Text, 5005)
- Dim writer As New StreamWriter(client.GetStream())
- writer.Write(TextBox2.Text)
- writer.Flush()
- End Sub
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- If listener.Pending = True Then
- message = ""
- client = listener.AcceptTcpClient()
- Dim reader As New StreamReader(client.GetStream)
- While reader.Peek > -1
- message = message + Convert.ToChar(reader.Read()).ToString
- End While
- TextBox3.Text = TextBox3.Text & message & vbCrLf
- Else : End If
- End Sub
- End Class
Lokal funktioniert es, nur sobald ich mir praktisch selbst etwas über das Internet senden möchte, bekomme ich die Fehlermeldung, dass der Zielcomputer die Verbindung verweigert. Jetzt sollte man wissen, dass ich einen Instant Messenger als Projektarbeit abgeben möchte, am Ende würde ich dann eine Client Anwendung haben und eine Serveranwendung.
Woran liegt es nun genau, dass ich praktisch keinen Zugriff auf den eigenen PC (über das Internet) habe ? Ich habe in der Windows Firewall den Port 5005 freigegeben. Liegt es jetzt am Router ? Wenn ja, kann man ja nicht von jedem Clientanweder erwarten, dass er erst den Router konfigurieren muss damit das Programm läuft, bei ICQ etc. funktioniert es schließlich auch so.