Tach vb-Coder.
Ich habe mir für meinen Mainchat einen James geprogt.
(Chatbot)
Alles anzeigen
Der soll sich einlogen und dort sitzen bleiben also
der soll jede 3 Sekudnen den Log lesen
und auf alle eintrittsbenachrichtigungen hören,
also den Besuchern hallo sagen und auch
auf auf wiedersehen bye tshcüss und muss los
hören und bye sagen.
ich wüsste wie es geht und soweit klappt auch alles bis auf...
Wenn ich aus dem Log mehr als 1000 zeichen
receiven möchte, stürzt mein prgramm ab udn es kommt
ein "Probelmberich senden/nicht senden"
was muss ich nur tun, dass mein bot den log kompeltt liest???
bitte um hilfe

Das Problem-Recieve liegt in Function ScheckLog...
Die inputFelder:
txtServer.Text der Chatserver
txtHost.Text der Host auf dem Server
txtBrowser.Text der firefox request
txtLog.Text die meldungen kommen hierrein
cmdNewBot Zum reinschicken
txtNewBot_login Username des bots bei mir voreingabe James
txtNewBot_passwort passwort das verwendet werden soll.
Ich habe mir für meinen Mainchat einen James geprogt.
(Chatbot)
Quellcode
- 'Verbidnungsangaben in allen Subs typisieren udn bekannt machen
- Dim sock As Long
- Dim strServer As String
- Dim strHost As String
- Dim strRaum As String
- Dim strPost As String
- Dim strSend As String
- Dim strResponse As String
- 'Regex-Objekt vorbereiten!
- Dim myRegExp As RegExp
- Dim myMatches As MatchCollection
- Dim myMatch As Match
- Dim strSchreiben As String
- Dim Drin As Boolean
- Dim Rueckgabe As String
- 'Daten des Bots Subweit bekannt machen.
- Dim strBot_Name As String
- Dim strBot_Pass As String
- Dim strBot_Browser As String
- Dim strBot_uid As String
- Sub Verzoegerung(ByVal Dauer As Integer)
- start = Timer
- Do
- DoEvents
- Zeit = Timer - start
- Loop Until Zeit >= Dauer
- End Sub
- Public Function ScheckLog()
- 'Chatlog abhören.
- Rueckgabe = ""
- sock = Socket.Socket(istTCPSocket:=True)
- If Not Socket.Connect(sock, strServer, Port:=80) Then
- txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "''s Anfrage zum Server wurde abgelehnt!"
- Else
- If Not Socket.Send(sock, "GET /chat.php?http_host=" + strHost + "&id=" + strBot_uid + "&back=1 HTTP/1.0" + vbCrLf + "Host: " + strServer + vbCrLf + strBot_Browser + vbCrLf + vbCrLf) Then
- txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' konnte seinen Chatlog nicht aktualisieren - Chat verlassen!"
- Else
- Rueckgabe = Right(Socket.Receive(sock, 1000), 1000)
- txtLog.Text = txtLog.Text + "LOG aktualisiert: '" + strBot_Name + "'!" + vbCrLf
- End If
- End If
- Socket.CloseSocket (sock)
- ScheckLog = Rueckgabe
- End Function
- Public Sub Chatten(ByVal Message As String)
- sock = Socket.Socket(istTCPSocket:=True)
- If Not Socket.Connect(sock, strServer, Port:=80) Then
- txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' konnte sich nicht zum Server verbinden!" + vbCrLf
- Else
- Schreiben = "GET /schreibe.php?http_host=" + strHost + "&id=" + strBot_uid + "&text=" + Message + "&text2=" + Message + " HTTP/1.0" + vbCrLf + "Host: " + strServer + vbCrLf + strBot_Browser + vbCrLf + vbCrLf
- If Not Socket.Send(sock, Schreiben) Then
- txtLog.Text = txtLog.Text + "Nope: " + strBot_Name + "' konnte die Nachricht nicht logen!" + vbCrLf
- Else
- txtLog.Text = txtLog.Text + "<" + strBot_Name + ">" + Message + vbCrLf
- End If
- End If
- Socket.CloseSocket (sock)
- End Sub
- Private Sub cmdNewBot_Click()
- If (txtNewBot_login = "") Then
- MsgBox "Gebe erst einen login-Nickname ein für den Bot!"
- Exit Sub
- End If
- If Not Socket.Initialize Then
- txtLog.Text = "Nix socket!" + vbCrLf
- Else
- 'Verbindung zum Server.
- strServer = txtServer.Text
- strHost = txtHost.Text
- strRaum = txtRaum.Text
- sock = Socket.Socket(istTCPSocket:=True)
- If Not Socket.Connect(sock, strServer, Port:=80) Then
- txtLog.Text = txtLog.Text + "Nope: Verbindung zu " + strServer + " fehlgeschlagen!" + vbCrLf
- Else
- 'Dem Bot Name, Passwort und seinen Browser zuweisen
- strBot_Name = txtNewBot_login
- strBot_Pass = txtNewBot_passwort
- strBot_Browser = txtBrowser.Text
- strPost = "http_host=" + strHost + "&aktion=login&login=" + strBot_Name + "&passwort=" + strBot_passwort + "&eintritt=" + strRaum + "&javascript=on"
- strSend = "POST /index.php HTTP/1.0" + vbCrLf + "Host: " + strServer + vbCrLf + strBot_Browser + "Content-Type: application/x-www-form-urlencoded" + vbCrLf + "Content-Length: " + Str(Len(strPost)) + vbCrLf + vbCrLf + strPost + vbCrLf + vbCrLf
- If Not Socket.Send(sock, strSend) Then
- txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' konnte sich nicht einlogen!" + vbCrLf
- Else
- strResponse = Socket.Receive(sock, 5000)
- Socket.CloseSocket (sock)
- Set myRegExp = New RegExp
- myRegExp.IgnoreCase = True
- myRegExp.Global = True
- myRegExp.Pattern = "FRAME SRC=.*http_host=.*&id=(.*)&aktion=chatuserliste.* MARGINWIDTH=4 MARGINHEIGHT=0 name=.*"
- strBot_uid = ""
- For Each m In myRegExp.Execute(strResponse)
- strBot_uid = m.SubMatches(0)
- Next
- 'Konnte keine uid des Bots rausgenommen werden und ist somit leer, kam er nicht rein. Wahrscheinlich Gastname besetzt.
- If strBot_uid = "" Then
- txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' kam nicht rein. login wahrscheinlich besetzt oder ungültig." + vbCrLf
- Exit Sub
- End If
- txtLog.Text = txtLog.Text + "Klopf: '" + strBot_Name + "' betritt den Raum Lobby!" + vbCrLf
- 'Chatlog abhören.
- sock = Socket.Socket(istTCPSocket:=True)
- If Not Socket.Connect(sock, strServer, Port:=80) Then
- txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "''s Anfrage zum Server wurde abgelehnt!"
- Else
- If Not Socket.Send(sock, "GET /chat.php?http_host=" + strHost + "&id=" + strBot_uid + "&back=1 HTTP/1.0" + vbCrLf + "Host: " + strServer + vbCrLf + strBot_Browser + vbCrLf + vbCrLf) Then
- txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' konnte seinn Chatlog nicht aktualisieren - Chat verlassen!"
- Else
- txtLog.Text = txtLog.Text + "LOG aktualisiert: '" + strBot_Name + "'!" + vbCrLf
- End If
- End If
- Socket.CloseSocket (sock)
- 'Hallo sagen wenn jemand hi sagt
- Chatten "Test"
- Drin = True
- End If
- End If
- End If
- End Sub
- Private Sub Timer1_Timer()
- If Drin = True Then
- 'Hier wird später der Bot per Regex Befehle entnehmen und darauf Posten
- string1 = ScheckLog
- MsgBox string1
- End If
- End Sub
Der soll sich einlogen und dort sitzen bleiben also
der soll jede 3 Sekudnen den Log lesen
und auf alle eintrittsbenachrichtigungen hören,
also den Besuchern hallo sagen und auch
auf auf wiedersehen bye tshcüss und muss los
hören und bye sagen.
ich wüsste wie es geht und soweit klappt auch alles bis auf...
Wenn ich aus dem Log mehr als 1000 zeichen
receiven möchte, stürzt mein prgramm ab udn es kommt
ein "Probelmberich senden/nicht senden"
was muss ich nur tun, dass mein bot den log kompeltt liest???
bitte um hilfe


Das Problem-Recieve liegt in Function ScheckLog...
Die inputFelder:
txtServer.Text der Chatserver
txtHost.Text der Host auf dem Server
txtBrowser.Text der firefox request
txtLog.Text die meldungen kommen hierrein
cmdNewBot Zum reinschicken
txtNewBot_login Username des bots bei mir voreingabe James
txtNewBot_passwort passwort das verwendet werden soll.