Hallo,
ich weiß das Thema wurde hier schon mehrmals besprochen dennoch habe ich Fragen:
Ich habe alles aus einem Tut übernommen (youtube.com/watch?v=DMWL1q0_3Yo). Nun bin ich leider nicht wirklich bewandert und habe mir das Ganze wohl etwas zu einfach vorgestellt.
Im Grund will ich nur wissen, wie kommt es, dass wenn ich eine Nachricht eintippe, diese stets doppelt im Verlauf eingetragen wird und warum (Selbstgespräch :D) und wie ich kann ich dafür sorgen, dass andere (zB. aus dem Netzwerk) mit einsteigen können?
Bzw. wo muss ich Änderungen vornehmen und wieso bzw. wo bekomme ich die Information dafür her?
Freue mich über Feedback.
Spoiler anzeigen
ich weiß das Thema wurde hier schon mehrmals besprochen dennoch habe ich Fragen:
Ich habe alles aus einem Tut übernommen (youtube.com/watch?v=DMWL1q0_3Yo). Nun bin ich leider nicht wirklich bewandert und habe mir das Ganze wohl etwas zu einfach vorgestellt.
Im Grund will ich nur wissen, wie kommt es, dass wenn ich eine Nachricht eintippe, diese stets doppelt im Verlauf eingetragen wird und warum (Selbstgespräch :D) und wie ich kann ich dafür sorgen, dass andere (zB. aus dem Netzwerk) mit einsteigen können?
Bzw. wo muss ich Änderungen vornehmen und wieso bzw. wo bekomme ich die Information dafür her?
Freue mich über Feedback.
VB.NET-Quellcode
- Imports System.IO, System.Threading, System.Net.Sockets
- Public Class z_chat
- Dim listener As New TcpListener(8000)
- Dim client As TcpClient
- Dim message As String
- Private Sub z_chat_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
- listener.Stop()
- Application.Exit()
- End Sub
- Private Sub z_chat_Load(sender As Object, e As EventArgs) Handles Me.Load
- listener.Start()
- Dim listthread As New Thread(New ThreadStart(AddressOf listening))
- listthread.Start()
- Dim IP As System.Net.IPAddress
- IP = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList(0)
- tb_ip.Text = IP.ToString
- End Sub
- Private Sub listening()
- listener.Start()
- End Sub
- Private Sub b_send_Click(sender As Object, e As EventArgs) Handles b_send.Click
- Dim nick As String = " " & tb_nick.Text & ": "
- If rtb_msg.Text = "" Then
- MsgBox("Geben Sie einen Text ein!", MsgBoxStyle.Exclamation, "Text fehlt!")
- Else
- Try
- client = New TcpClient(tb_ip.Text, 8000)
- Dim writer As New StreamWriter(client.GetStream())
- writer.Write(rtb_msg.Text)
- rtb_chat.AppendText(Format(Now, "[hh:mm]") & nick & rtb_msg.Text & vbCrLf)
- rtb_msg.Clear()
- writer.Flush()
- Catch ex As Exception
- MsgBox("Fehler!")
- End Try
- End If
- End Sub
- Private Sub tmr_1_Tick(sender As Object, e As EventArgs) Handles tmr_1.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
- rtb_chat.AppendText(Format(Now, "[hh:mm]") & " Er/Sie: " & message & vbCrLf)
- End If
- End Sub
- Private Sub rtb_msg_KeyDown(sender As Object, e As KeyEventArgs) Handles rtb_msg.KeyDown
- If e.KeyCode = Keys.Enter Then
- b_send.PerformClick()
- End If
- End Sub
- End Class