- #1
N
n3zmo
Neues Mitglied
Themenersteller
- Dabei seit
- 05.10.2004
- Beiträge
- 3
- Reaktionspunkte
- 0
Hallo zusammen. Ich habe ein kleiner Problem. Habe momentan einen Chat (Client und Server). Als erstes muss der Server gestartet werden, danach können sich die User mit einem Account anmelden und somit wird der Client gestartet.
Im Client hat es eine Textbox wo alle Nachrichten angezeigt werden und in einer Listbox werden alle user aufgelistet die online sind.
Momentan ist es so das der user etwas verschickt und alle sehen es in dieser Textbox. Der Text wird zuerst zum Server gesendet und dieser Server leitet es weiter an allen Clients.
Das Problem liegt jetzt beim versenden von privaten nachrichten. Momentan habe ich das Programm so ausgebaut das wen man ein user anklickt in der Listbox ein Private Chat Fenster aufgeht. wen in diesem Fenster etwas hingeingeschrieben wird und enter drückt wird diese Message zum Server verschickt. (Der Server weiss das es sich um eine Privaten Nachricht handelt), ich weiss jetzt einfach nicht wie ich es machen soll das diese Nachricht nur demjenige Client verschickt wird den ich angeklickt habe in der Listbox.
Mit diesem Code wird die Nachricht an alle Clients weitergeleitet. Hier wird ja aber diese Send Methode aufgerufen...
Hoffe das jemand helfen kann
Gruss n3zmo
Im Client hat es eine Textbox wo alle Nachrichten angezeigt werden und in einer Listbox werden alle user aufgelistet die online sind.
Momentan ist es so das der user etwas verschickt und alle sehen es in dieser Textbox. Der Text wird zuerst zum Server gesendet und dieser Server leitet es weiter an allen Clients.
Code:
Public Sub Send(ByVal Data As String)
If IsNothing(mobjClient) Then
Dim arData(Len(Data) - 1) As Byte
Dim intIndex As Integer
For intIndex = 1 To Len(Data)
arData(intIndex - 1) = Asc(Mid(Data, intIndex, 1))
Next
mobjSocket.BeginSend(arData, 0, Len(Data), SocketFlags.None, Nothing, Nothing)
Else
SyncLock mobjClient.GetStream
Dim w As New IO.StreamWriter(mobjClient.GetStream)
w.Write(Data)
w.Flush()
End SyncLock
End If
End Sub
Das Problem liegt jetzt beim versenden von privaten nachrichten. Momentan habe ich das Programm so ausgebaut das wen man ein user anklickt in der Listbox ein Private Chat Fenster aufgeht. wen in diesem Fenster etwas hingeingeschrieben wird und enter drückt wird diese Message zum Server verschickt. (Der Server weiss das es sich um eine Privaten Nachricht handelt), ich weiss jetzt einfach nicht wie ich es machen soll das diese Nachricht nur demjenige Client verschickt wird den ich angeklickt habe in der Listbox.
Mit diesem Code wird die Nachricht an alle Clients weitergeleitet. Hier wird ja aber diese Send Methode aufgerufen...
Code:
Dim qn As Client
Dim qd As DictionaryEntry
For Each qd In Client
qn = qd.Value
qn.Send(Data & vbCrLf)
qn.Send(clear & vbCrLf)
For i = 0 To userbox.Items.Count - 1
qn.Send(client: & userbox.Items.Item(i) & vbCrLf)
Next
Next
Hoffe das jemand helfen kann
Gruss n3zmo