IRC Protokoll

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

The_Nici

Betreff: IRC Protokoll

BeitragSa, Jan 26, 2008 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay,

ich habe mich mal heute drangesetzt einen IRC-Bot zu programmieren. Nun, er funktioniert jedoch nicht, er kann zwar auf den Server zugreifen, aber sich scheinbar nicht anmelden.

Der Code:
Code: [AUSKLAPPEN]

Type zeile
   Field z$
   Field y%
End Type

Graphics 800,600,0,2
SetBuffer BackBuffer()

IRCStream=OpenTCPStream("dope.se.eu.blitzed.org",6667)
Hostname$="NBot"
WriteLine IRCStream,"USER "+"NiciBot"+" "+Hostname$+" "+"dope.se.eu.blitzed.org"+" :"+"NiciBot"
WriteLine IRCStream,"NICK NiciBot"

yz=0
While Not KeyDown(1)
   Bytes=ReadAvail(IRCStream)
   Text 600,0,Bytes
   While Bytes>0
      inmsg$=ReadLine(IRCStream)
      If inmsg$<>0
         ze.zeile=New zeile
         ze\z$=inmsg$
         ze\y=yz
         yz=yz+12
      EndIf
      If Left(Trim(Upper(inmsg$)),4) = "PING" Then
         WriteLine IRCStream, "PONG "+Mid(Trim(Upper(inmsg$)),5)
      EndIf
      If KeyHit(2) Then WriteLine IRCStream,"JOIN #blitzbasic.de":Print "Betreten!"
      Bytes=ReadAvail(IRCStream)
   Wend
   For ze.zeile=Each zeile
      Text 0,ze\y,ze\z$
   Next
   Flip
   Cls
Wend
CloseTCPStream(IRCStream)
End

Scheint nicht wirklich zu funktionieren.

D2006

Administrator

BeitragSa, Jan 26, 2008 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist aber schade. Sad

Naja, vielleicht klappt's beim nächsten Mal.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

hamZta

Administrator

BeitragSa, Jan 26, 2008 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
The_Nici: Wie du im IRC-RFC nachlesen kannst müssen korrekte IRC-Befehle mit einem Carriage Return und einem Line Feed beendet werden. (Chr(10)+Chr(13) wenn ich mich recht erinnere).
Blog.

The_Nici

BeitragSa, Jan 26, 2008 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Nyo, das Problem hat sich im Channel gelöst.

Dee: Ja, ich glaube BlitzBasic muss sich erst noch mit Herrn IRC anfreunden.

Nescio

BeitragDo, Feb 14, 2008 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Type zeile
   Field z$
   Field y%
End Type

Graphics 800,600,0,2
SetBuffer BackBuffer()

IRCStream=OpenTCPStream("dope.se.eu.blitzed.org",6667)
Hostname$="Nici"
WriteLine IRCStream,"USER "+"NiciBot"+" "+Hostname$+" "+"dope.se.eu.blitzed.org"+" :"+"NiciBot"
WriteLine IRCStream,"NICK NiciBot"

yz=0
While Not KeyDown(1)
   Bytes=ReadAvail(IRCStream)
   Text 600,0,Bytes
   While Bytes>0
      inmsg$=ReadLine(IRCStream)
      If inmsg$<>0
         ze.zeile=New zeile
         ze\z$=inmsg$
         ze\y=yz
         yz=yz+12
      EndIf
      If Left(Trim(Upper(inmsg$)),4) = "PING" Then
         WriteLine IRCStream, "PONG "+Mid(Trim(Upper(inmsg$)),5)
      EndIf
      
      Bytes=ReadAvail(IRCStream)
   Wend
   For ze.zeile=Each zeile
      Text 0,ze\y,ze\z$
   Next
   If KeyHit(2) Then
      WriteLine IRCStream,"JOIN #blitzbasic.de"+Chr(10)+Chr(13)
      Print "Betreten!"
   EndIf
   Flip
   Cls
Wend
CloseTCPStream(IRCStream)
End


so klappts
Quod est faciendum? Nescio!

Ghost

BeitragDo, Feb 14, 2008 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Question >.< Könnte mir bitte jemand sagen was dieses Programm bringt?


Danke
Greeez Twisted Evil
Das ist keine Lüge sondern eine sachzwangreduzierte Ehrlichkeit.
----
Anakin: " Was für eine Lichtschwertform habt ihr da eigentlich benutzt, Meister? "

Obi Wan: " Form? Es war wohl eher ein Mangel an Form. "

Nescio

BeitragDo, Feb 14, 2008 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
es verbindet dich mit dem blitzbasic.de irc channel Smile
IRC = Internet Relay Chat

Gruß
Nescio
Quod est faciendum? Nescio!

Ghost

BeitragDo, Feb 14, 2008 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah.. ja soo..
xD danke für die Info. Werd ich mir merken Wink
Das ist keine Lüge sondern eine sachzwangreduzierte Ehrlichkeit.
----
Anakin: " Was für eine Lichtschwertform habt ihr da eigentlich benutzt, Meister? "

Obi Wan: " Form? Es war wohl eher ein Mangel an Form. "

Nescio

BeitragDo, Feb 14, 2008 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
So, dank Nicis Code hab ich jetzt die Grundlagen der Kommunikation mit Servern verstanden und daraus mal en erweiterten RC-Client geschrieben. Klappt soweit ganz gut.
Befehle müssen mit einem / begonnen werden, ansonsten wirds als normaler Text gelesen.
Desweiteren wird nach wie vor ALLE information vom Server angezeigt, das reine Chatten fällt also noch etwas schwer. Und Umlaute und Sonderzeichen werden zwar korrekt verschickt, allerdings nicht korrekt angezeigt. Wer daran was ändern will darf dies gerne tun und anschließend posten.

MfG,
Nescio


Code: [AUSKLAPPEN]
Type zeile
   Field z$
End Type

Graphics 800,600,0,2
SetBuffer BackBuffer()

IRCStream=OpenTCPStream("dope.se.eu.blitzed.org",6667)
hostname$="BB-IRC-Client"
user$=Input("Dein Nickname: ")
name$=Input("Dein wirklicher Name: ")
server$=Input("Welcher Server? ")
If server$="" Then server$="dope.se.eu.blitzed.org"
WriteLine IRCStream,"USER "+user$+" "+hostname$+" "+server$+" :"+user$
WriteLine IRCStream,"NICK "+user$
channel$=""

While Not KeyDown(1)
   Bytes=ReadAvail(IRCStream)
   While Bytes>0
      inmsg$=ReadLine(IRCStream)
      If inmsg$<>0
         ze.zeile=New zeile
         ze\z$=inmsg$
      EndIf
      If Left(Trim(Upper(inmsg$)),4) = "PING" Then
         WriteLine IRCStream, "PONG "+Mid(Trim(Upper(inmsg$)),5)
      EndIf
      
      Bytes=ReadAvail(IRCStream)
   Wend
   
   If KeyHit(28) And Len(eingabe$)>0 Then
      
      in=Instr(eingabe$,"#")
      If in Then channel$=Mid$(eingabe$,in)
   
      If Left$(eingabe$,1)="/" Then
         eingabe$=Mid$(eingabe$,2)
      Else
         eingabe$="PRIVMSG "+channel$+" :"+eingabe$
      EndIf
      
      
      
      WriteLine IRCStream,eingabe$+Chr(10)+Chr(13)
      ze.zeile=New zeile
      ze\z$=eingabe$
      eingabe$=""
   EndIf
   
   key=GetKey()
   
   If key>31 Then
      eingabe$=eingabe$+Chr$(key)
   ElseIf key=8 And Len(eingabe$)>0 Then
      eingabe$=Left$(eingabe$,Len(eingabe$)-1)
   EndIf
   
   ;Graphische Ausgabe
   
   Cls
   
   Color 255,255,255
   
   zy=0
   For ze.zeile=Each zeile
      zerhack$=ze\z$
      While StringWidth(zerhack$)>800
         teilbreite=800/StringWidth("w")
         Text 0,zy-scroll,Left$(zerhack$,teilbreite)
         zerhack$=Mid$(zerhack$,teilbreite+1)
         zy=zy+12
      Wend
      Text 0,zy-scroll,zerhack$
      zy=zy+13
   Next
   
   If zy>550 Then scroll=zy-550
   
   Color 0,255,0
   Text 10,580,eingabe$+"_"
   
   Flip
   
Wend
CloseTCPStream(IRCStream)
End
Quod est faciendum? Nescio!

The_Nici

BeitragSa, Feb 16, 2008 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Tolle Sache, aber ich halte es für unnötig ein geklärtes Problem noch weiter aufzupushen. =D

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group