Diese Werbeeinblendung erscheint nach 5 Minuten Idletime.
- Werbung - weiter auf Codershell surfen.
Visual Basic » Socketverbindung ins IRC
Seiten:  1 
[ Sie müssen angemeldet sein, um einen Beitrag zu verfassen. ]
Geschrieben von gix am 12.04.2007 um 00:00 Uhr.
Beiträge: 185 / #1205

Kontakt: Mailen | ICQ

Um eine Socketverbindung aufbauen zu können, müssen wir die Microsoft Winsock Control (6.0) verwenden.
Wenn diese bei euch in der Werkzeugleiste noch nicht angezeigt wird, geht ihr über:
Projekt -> Komponenten zur Komponentenauswahl und sucht nach "Microsoft Winsock Control".
Danach erscheint in eurer Werkzeugleiste ein weiteres Symbol, was ihr auch gleich in eure form mit einbinden könnt.


Ich will euch allerdings den Aufbau eures Clients euch selbst überlassen, und deswegen werde ich diesmal nicht weiter auf die Form eingehen.

Als erstes deklarieren wir 2 Konstanten, welche der Serveradresse + Port entsprechen(kann von euch angepasst werden)
Ihr könnt natürlich auch eine Konstante für euren Nickname anlegen.
CODE
1.
2.
3.
4.
5.
Const server = "irc.webiface.org"
Const port = "6667"
Const nick = "gix"


Wir nehmen jetzt an das ihr beim Programmstart schon Connecten wollt.
Dazu müssen wir die Anweisung geben, dass das Programm nach laden der Form
die Adresse und das Port festlegt, zu der man eine Verbindung aufbaut.

CODE
1.
2.
3.
4.
5.
6.
7.
Private Sub Form_Load()
       ircSock.RemoteHost = server
       ircSock.RemotePort = port
       ircSock.connect
End Sub


Während eine Verbindung aufgebaut wird, muss man den zukünftigen Nicknamen und Usernamen an den server übermitteln. Dabei sollte man besonders auf vbCrLf am Ende der zu sendenden Daten achten. Diese sind dafür verantwortlich, das ein Befehl gesendet wird[wie die Funktion der Entertaste]
CODE
1.
2.
3.
4.
5.
6.
Private Sub ircSock_Connect()
    ircSock.SendData ("NICK " & nick & vbCrLf)
    ircSock.SendData ("USER " & nick & "  " & nick & " " & nick & " Tutorial von t4k3.de " & " " & vbCrLf)
End Sub

Nachdem eine Verbindung erfolgreich aufgebaut werden konnte, sendet der Server Daten an den Client zurück. Um diese Daten in einer Variable zu speichern und auszugeben nutzen wir folgenden Code:
CODE
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub ircSock_DataArrival(ByVal bytesTotal As Long)
        On Error Resume Next
        Dim data As String

        ircSock.GetData data

        If InStr(data, "PING") = 1 Then
                   ircSock.SendData "PONG " & Split(data, " ")(1)
        End If

        If InStr(data, "376") Or InStr(data, "422") Then
                  ircSock.SendData "JOIN #beispiel " & vbCrLf
        End If

End Sub


Zur Erklärung:
Alle Daten die ankommen, werden in dem String data gespeichert.
IRC server haben oft einen PING PONG Event. D.h. der Server sendet daten und will spezielle daten zurück bekommen.(Sendet er zb.: Ping 91292387 - möchte er: Pong 91292387 als antwort bekommen)

Falls dieses Event vorkommt, und "PONG" im ankommenden String vorhanden ist, wird Pong und die entsprechende Zahl gesendet(dazu wird auf die Split()-Funktion zurückgegriffen).

Falls nun noch der RAW-CODE 376 oder 422 im String vorkommt, bedeutet die's das die MotD(Message of the Day) am Ende angekommen ist, oder fehlt.
Ist die's der Fall, können neue Daten an den server Gesendet werden. In diesem Fall
soll der Channel "#beispiel" betreten werden.

Wenn ihr die Socketverbindung beenden wollt könnt ihr folgende Zeile benutzen
CODE
1.
2.
3.
ircSock.close


Ich hoffe ich konnte euch einen kleinen Einblick geben, wie man mit Sockets arbeiten kann.
Sollten dennoch Fragen oder Probleme auftreten, stehe ich gern zur verfügung  


wong itdel.iciode.blinklisttechnoratigoogleblinkbitsyahooyiggblogmarksfurlspurlwebnewsstumbleupondigg itma.gnolia.comco.mments Zitieren Beitrag melden
[ Sie müssen angemeldet sein, um einen Beitrag zu verfassen. ]
Seiten:  1 
Login / Account
E-Mail Adresse:

Passwort:



Passwort zurücksetzen
Werbung