vb6 chat verbindungs problem
hi
Hab nen Server erstellt und nen client erstellt aber irgendwo ist der Wurm drin.
Der Client Verbindet sich mit dem Server nicht und mit dem Server kann
man keine Nachricht versenden.Wenn man es probiert dann kommt immer
ne Fehlermeldung.Tja bin schon den ganzen Tag am verzweifeln, mal schauen ob
mir jemand weiter helfen kann...
Server:
Client:
Mfg Gringo
hi
Hab nen Server erstellt und nen client erstellt aber irgendwo ist der Wurm drin.
Der Client Verbindet sich mit dem Server nicht und mit dem Server kann
man keine Nachricht versenden.Wenn man es probiert dann kommt immer
ne Fehlermeldung.Tja bin schon den ganzen Tag am verzweifeln, mal schauen ob
mir jemand weiter helfen kann...
Server:
Code:
Option Explicit
Private blnConnected As Boolean
Private strNick As String
Private blnServer As Boolean
Private blnSendCompleted As Boolean
Private Sub cmdListen_Click()
Dim intMax As Integer
intMax = 1
Winsockchat.LocalPort = 1001
Winsockchat.Listen
End Sub
Private Sub send_Click()
Dim strMessage As String
If Trim(Text4.Text) <> "" Then
strMessage = "0" & nick & _
Text4.Text
If blnServer Then
ForwardMsg strMessage, 0
Else
Senden strMessage, 0
End If
AddMessage Text4.Text, nick
Text4.Text = ""
End If
End Sub
Private Sub AddMessage(strMessage As String, strSender As String)
Text3.Text = Text.Text & _
"(" & Trim(nick) & ") " & _
Text4.Text & vbCrLf
Text3.SelStart = Len(Text.Text) ' An den Schluss des Chat scrollen
End Sub
Private Sub ForwardMsg(strData As String, intExcludeIndex As Integer)
Dim intCounter As Integer
If Winsockchat.Count > 1 Then
For intCounter = 1 To Winsockchat.Count - 1
If intCounter <> intExcludeIndex Then
Senden strData, intCounter
End If
Next
End If
End Sub
Sub wsckChat_ConnectionRequest(index As Integer, ByVal requestID As Long)
wsckChat(GetNextFreeIndex).Accept requestID
End Sub
Private Function GetNextFreeIndex() As Integer
Dim intCounter As Integer
For intCounter = 1 To Winsockchat.Count - 1
If Winsockchat(intCounter).State = sckClosed Then
GetNextFreeIndex = intCounter
Exit Function
End If
Next
GetNextFreeIndex = Winsockchat.Count
Load Winsockchat(GetNextFreeIndex)
End Function
Private Sub Senden_KeyPress(KeyAscii As Integer)
blnSendCompleted = False
If Winsockchat(index).State = sckConnected Then
Winsockchat(index).SendData strData
Do Until blnSendCompleted
DoEvents
Loop
End If
End Sub
Private Sub Winsockchat_Close()
If blnServer Then
If index = 0 Then
blnConnected = False
blnServer = False
Else
AddMessage "Der User " & Winsockchat(index).Tag & " hat den Chat verlassen", "-system-"
ForwardMsg Left("-system-" & Space(50), 50) & _
"Der User " & Winsockchat(index).Tag & " hat den Chat verlassen", index
Winsockchat(index).Close
End If
Else
AddMessage "Die Verbindung wurde beendet", "-system-"
blnConnected = False
blnServer = False
End If
End Sub
Private Sub winsockchat_Connect()
Senden "1" & nick
End Sub
Private Sub Winsock_ConnectionRequest(ByVal requestID As Long)
Dim index As Integer
Dim intMax As Integer
If index = 0 Then
intMax = intMax + 1
Load Winsock(intMax)
Winsock(intMax).LocalPort = Text1.Text
Winsock(intMax).Accept requestID
End If
End Sub
Private Sub Winsockchat_DataArrival(ByVal bytesTotal As Long)
Dim data As String
Dim i As Integer
Winsock(index).GetData data 'Empfangenen Text in einen String schreiben
For i = 0 To intMax
If Winsock(i).State = 7 Then 'Überprüft Winsock No. i verbunden ist
Winsock(i).SendData data 'Senden des Textes an den Clienten auf Winsock No. i
DoEvents
End If
Next i
Text2.Text = Text2.Text & data & vbCrLf
Text2.SelLength = Len(Text2.Text) 'Text mitscrollen
'-------------------------------------------
End Sub
Private Sub Command3_Click()
status.SimpleText = "Status:Offline"
Dim Counter As Integer
For Counter = 0 To Winsockchat.Count - 1
If Winsockchat(Counter).State <> sckClosed Then
Winsockchat(Counter).Close
If Counter >= 1 Then Unload Winsockchat(Counter)
End If
Next
blnConnected = False
blnServer = False
End Sub
Private Sub Winsockchat_SendComplete()
blnSendCompleted = True
End Sub
Client:
Code:
Option Explicit
Dim connected As Boolean
Private Sub Form_Load()
connected = False
End Sub
Private Sub Command1_Click()
Dim result As String
If nick = "" Then
Text3.Text = "Gib erstmal deinen Nick an"
Form1.Show
Text4.Enabled = False
Else
nick.Enabled = False
result = InputBox("Geben sie das Passwort ein:", "client")
If result = "a" Then
Command1.Enabled = False
Text4.Enabled = True
Text1.Enabled = False
Text2.Enabled = False
If connected = True Then
Winsock1.Close
Else
Winsock1.RemoteHost = Text1.Text
Winsock1.RemotePort = Text2.Text
Winsock1.Connect
Screen.MousePointer = vbHourglass
End If
ElseIf result = "" Then
MsgBox "Falsches Passwort freundchen"
Text4.Enabled = False
Form1.Show
nick.Enabled = True
Else: MsgBox "EY Schweinemensch...überleg doch mal ein bisschen"
Text4.Enabled = False
result = InputBox("Geben sie das Passwort ein:", "Connect")
End If
If connected = True Then
End If
Text3.Text = ""
End If
End Sub
Private Sub Text4_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If connected = True Then
If Text3 <> "" Then
Winsock1.SendData "<" & nick & ">: " & Text4.Text
Text4.Text = ""
KeyAscii = 0
End If
Else
MsgBox "Noch keine Verbindung vorhanden!", vbInformation, "Fehler"
End If
End If
End Sub
Private Sub Command3_Click()
Winsock1.Close
Command1.Enabled = True
nick.Enabled = True
Text4.Enabled = False
Text1.Enabled = True
Text2.Enabled = True
Text3.Text = "Die Verbundung wurde unterbrochen"
Text4.Text = ""
End Sub
Private Sub label1_Click()
Unload Me
End Sub
Private Sub Timer1_Timer()
End Sub
Private Sub Winsock1_Close()
If Winsock1 Then
nick.Enabled = True
Text1.Enabled = True
Text2.Enabled = True
Text4.Enabled = False
Text3.Text = "Die Verbindung wurde unterbrochen!"
Command1.Enabled = True
Else: Text3.Text = "Sie sind verbunden"
End If
End Sub
Private Sub Winsock1_Connect()
Text4.Enabled = True
connected = True
Screen.MousePointer = vbNormal
Text3.Text = Text3.Text & _
"Verbindung aufgebaut!" & vbCrLf & vbCrLf
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim data As String
Winsock1.GetData data
Text3.Text = Text3.Text & data & vbCrLf
Text3.SelLength = Len(Text3.Text)
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, _
Description As String, ByVal Scode As Long, _
ByVal Source As String, ByVal HelpFile As String, _
ByVal HelpContext As Long, CancelDisplay As Boolean)
Me.MousePointer = vbNormal
MsgBox "Fehler in der Verbindung:" & vbCrLf & vbCrLf & _
Description, vbExclamation, "Verbindungsfehler"
Winsock1.Close
Command1.Caption = "&Verbinden"
connected = False
End Sub
Mfg Gringo
Zuletzt bearbeitet: