Hallo Leute!
Wer kann mir bei diesem problem helfen.
Und zwar ich habe mir ein chat mittels winsock gebastelt, nun will ich eine bestädigung einbauen.
Das heiß wenn der client mit ins chat will, bekomm ich als server eine meldung das der client das chat betretten will.
Wenn ich auf ja klicke soll der client eine antwort bekommen "sie wurden angenommen".
Aber wenn ich nein klicke soll der client eine antwort bekommen "sie sind nicht angenommen".
Ich habe das versucht aber ich bekommt das nicht in ,ob der server den client verweigert oder wenn der server offline geht.
Es kommt immer die selbe meldung
danke für eure hilfe!!
so schaut der momentan der code von Server aus .
Private IsServer As Boolean
Private Verbunden As Boolean
Dim strMessage As String
Dim one 'variable für die meldung
Dim Pf 'variable für die prüfung
Private Sub Form_Load()
If IsServer = IsServer Then
Winsock1.LocalPort = 50
Text1.Text = "Sie sind jetzt im Server Modus" & vbNewLine
DoEvents
Winsock1.Listen
End If
Form1.Show
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then ' prüfung
KeyAscii = 1 'Tastertur
Text1.Text = Text1.Text & Form2.Text1.Text & "> " & Text2.Text & vbCrLf
Winsock1.SendData Form2.Text1.Text & "> " & Text2.Text
Text2 = ""
End If
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
one = MsgBox("Wollen Sie den Client annehmen?", 68, "frage")
If one = 6 Then
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
Text1.Text = "Der Client hat den Chat betretten" & vbCrLf
End If
If one = 7 Then
requestID = 0
Text1.Text = "Der Client hat den Chat nicht betretten" & vbCrLf
End If
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim daten As String
Winsock1.GetData daten
Text1.Text = Text1.Text & daten & vbCrLf
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
one = MsgBox("Möchten Sie das Programm beenden ?", 36, "Beenden")
If one = 6 Then
End
End If
If one = 7 Then Cancel = True
End Sub
Private Sub Winsock1_Close()
If Pf = Pf Then
Text1.Text = " Der Client hat den Chat verlassen"
' Verbindung schliessen
Winsock1.Close
If IsServer = IsServer Then
Winsock1.LocalPort = 50
Text1.Text = "Sie sind jetzt im Server Modus" & vbNewLine
DoEvents
Winsock1.Listen
End If
End If
End Sub Und das ist der code von client
Private IsServer As Boolean
Private Verbunden As Boolean
Dim one ' variable für die meldung
Private Sub Command1_Click()
Text1.Text = Text1.Text & Text2.Text & vbCrLf
Text2 = ""
Winsock1.SendData Text1.Text
End Sub
Private Sub Form_Load()
Winsock1.RemotePort = 50
Winsock1.RemoteHost = "127.0.0.1"
'und ab gehts VERBINDEN!!
Winsock1.Connect
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then ' prüfung
Text1.Text = Text1.Text & Anmeldung.ip.Text & "> " & Text2.Text & vbCrLf
Winsock1.SendData Anmeldung.ip.Text & "> " & Text2.Text
Text2 = ""
End If
End Sub
Private Sub Winsock1_Connect()
'da wir ja wissen wollen ob wir verbunden sind meldung ausgeben
Text1.Text = "Die verbindung ist aufgebaut"
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim daten As String
'wenn was zu holen ist
Winsock1.GetData daten
Text1.Text = Text1.Text & daten & vbCrLf
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
one = MsgBox("Möchten Sie das Programm beenden ?", 36, "Beenden")
If one = 6 Then
End
End If
If one = 7 Then Cancel = True
End Sub
Private Sub Winsock1_Close()
' Wenn der andere PC die Verbindung beendet hat
On Error GoTo ErrorHandler
one = MsgBox("Der Server ist Offline oder hat Sie verweigert ! " & _
vbNewLine & "Das Programm wird Geschlossen.", 64, "Offline")
If one = 1 Then
End
End If
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbApplicationModal + vbCritical + vbDefaultButton1 _
+ vbMsgBoxSetForeground + vbOKOnly, "Fehler"
Err.Clear
Exit Sub
End Sub |