TCP Chat

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von niwax.

    Hallo,
    ich arbeite momentan an einem TCP Chat Programm:

    VB.NET-Quellcode

    1. Imports System.Net.sockets
    2. Imports System.Threading
    3. Imports System.io
    4. Public Class Form1
    5. Dim listener As New TcpListener(80)
    6. Dim client As TcpClient
    7. Dim message As String = ""
    8. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    9. listener.Stop()
    10. End Sub
    11. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    12. Dim listthread As New Thread(New ThreadStart(AddressOf listening))
    13. listthread.Start()
    14. End Sub

    Private Sub listening()
    listener.Start()
    End Sub

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. client = New TcpClient(TextBox1.Text, 80)
    3. Dim writer As New StreamWriter(client.GetStream())
    4. writer.Write(TextBox2.Text)
    5. writer.Flush()
    6. End Sub
    7. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    8. If listener.Pending = True Then
    9. message = ""
    10. client = listener.AcceptTcpClient()
    11. Dim reader As New StreamReader(client.GetStream())
    12. While reader.Peek > -1
    13. message = message + Convert.ToChar(reader.Read()).ToString
    14. End While
    15. TextBox3.Text = TextBox3.Text & message & vbCrLf
    16. Else : End If
    17. End Sub
    18. End Class


    Bei dem listener.Start() (deutlich hervorgehoben) schreibt er ,als ich Debuggen wollte, :
    Only one usage of each socket address (protocol/network address/port) is normally permitted
    Was kann ich machen, dass das nicht mehr dahin kommt.

    MfG.sheriff3


    Edit by LaMa5:
    - hat nichts mit SourceCodeAustausch zu tun
    -->*moved* (=> Internet-/Netzwerkprogrammierung)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „sheriff3“ ()

    Ich möchte drauf hinweisen, das du mal bitte nicht mehr mit rot irgendwas kennzeichnest, das ist Mods vorbehalten. Nur so Tipp am Rande: Port 80 zu benutzen ist nich sehr dolle, da wennde einen linux server benutzt, wird da sicher ein webserver laufen, und port 80 ist für http/https glaubich. villeicht einen cryptischen port? wie ärs mit 48590 oder so? :D
    Ich möchte drauf hinweisen, das du mal bitte nicht mehr mit rot irgendwas kennzeichnest, das ist Mods vorbehalten. Nur so Tipp am Rande: Port 80 zu benutzen ist nich sehr dolle, da wennde einen linux server benutzt, wird da sicher ein webserver laufen, und port 80 ist für http/https glaubich. villeicht einen cryptischen port? wie ärs mit 48590 oder so? :D

    Port 80 wird auch bei einem Windows WebServer verwendet, schließlich läuft jede normale HTTP Verbindung auf diesem Port...
    aber stimmt schon, am besten einen anderen freien Port verwenden...

    dann wie bereits gesagt das Serverprogramm kann auf jeden Port nur einmal gestartet werden...

    und beim Beenden des Servers(vor listener.Stop) noch ein client.GetStream().Close...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---