Hallo liebe Community,
ich versuche in den letzten Tagen verzweifelt, für mein Internetradio einen abgespeckten IRC-Client mit eingebautem Stream-Tuner in VB .NET zu bauen. Der Stream-Teil funktioniert dank eines Windows Media Player - Controls ganz gut, nur der IRC-Client zickt rum. Das Problem besteht darin, dass der Client sich zwar zum Server verbindet, aber dann auch nichts weiter macht. Sprich - das Programm hängt. Zum besseren Verständnis poste ich hier mal den Code sowie einen Screenshot vom "letzten Zustand" des Programms. Ich hoffe, mir kann hier jemand weiterhelfen, ich kenne mich leider nicht wirklich in VB aus
Vielen Dank im Voraus,
Euer a1Pha
//edit: timer1 ist auf "1" gesetzt, habe aber auch schon mit anderen werten gespielt, ändert nichts am zustand. button3 sorgt für den verbindungsaufbau, button1 und button2 sind die "stop" und "play" - buttons.
//edit2: http://picpaste.de/vbasic_1.jpg << da ist der screenshot, sorry.
ich versuche in den letzten Tagen verzweifelt, für mein Internetradio einen abgespeckten IRC-Client mit eingebautem Stream-Tuner in VB .NET zu bauen. Der Stream-Teil funktioniert dank eines Windows Media Player - Controls ganz gut, nur der IRC-Client zickt rum. Das Problem besteht darin, dass der Client sich zwar zum Server verbindet, aber dann auch nichts weiter macht. Sprich - das Programm hängt. Zum besseren Verständnis poste ich hier mal den Code sowie einen Screenshot vom "letzten Zustand" des Programms. Ich hoffe, mir kann hier jemand weiterhelfen, ich kenne mich leider nicht wirklich in VB aus

Vielen Dank im Voraus,
Euer a1Pha
Code:
Public Class Form1
Dim botname As String = "test"
Dim send As String
Dim con As New System.Net.Sockets.TcpClient
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
con.SendBufferSize = 5000
con.SendTimeout = 5
AxWindowsMediaPlayer1.Ctlcontrols.stop()
End Sub
' vorläufige funktion, filtert unnötiges aus dem eingang
Public Function CleanString(ByVal strSource As String) As String
On Error GoTo CleanStringErr
' convert tabs to spaces first
strSource = Replace(strSource, vbTab, vbCrLf)
' convert all CRLFs to spaces
strSource = Replace(strSource, vbCrLf, " ")
' Find and replace any occurences of multiple spaces
Do While (InStr(strSource, " "))
' if true, the string still contains double spaces,
' replace with single space
strSource = Replace(strSource, " ", " ")
Loop
' Remove any leading or training spaces and return
' result
CleanString = Trim(strSource)
Exit Function
CleanStringErr:
' Insert error-handling code here
End Function
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick
Dim r As Integer
Dim bla As System.IO.Stream
Dim stringle As String
Dim bytebuffer(5000) As Byte
bla = con.GetStream
bla.Read(bytebuffer, 0, bytebuffer.Length - 1)
If bytebuffer.Length > 0 Then
For r = 0 To bytebuffer.Length - 1
stringle = stringle & Chr(bytebuffer(r))
Next
End If
stringle = CleanString(stringle)
'stringle = Replace(stringle, vbLf, vbCrLf)
'stringle = Replace(stringle, vbCr & vbCr, vbCr)
speech.Items.Add(stringle)
If InStr(LCase(stringle), "hostname") > 0 Or InStr(LCase(stringle), "ident") > 0 Then
sending("NICK " & botname)
sending("USER " & botname & " blackhack.kicks-ass.org a1pha.de :" & botname)
sending("JOIN #client.radio.worx")
End If
If InStr(stringle, "PING") > 0 Then 'And InStr(LCase(stringle), "privmsg") <= 0 Then
Dim r2 As Integer
Dim b As String
r2 = InStr(LCase(stringle), "ping")
r2 = r2 + 5
b = Mid(stringle, r2, Len(stringle))
sending(b)
End If
End Sub
Public Sub sending(ByVal send)
send = send & vbCrLf
Dim derstream As System.IO.Stream
Dim k As Integer
Dim r As Integer
Dim bytebuffer(5000) As Byte
derstream = con.GetStream
For r = 1 To Len(send)
bytebuffer(r - 1) = Asc(Mid(send, r, 1))
k = k + 1
Next r
derstream.Write(bytebuffer, 0, k)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
AxWindowsMediaPlayer1.Ctlcontrols.play()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
AxWindowsMediaPlayer1.Ctlcontrols.stop()
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = ChrW(Keys.Enter) Then
e.Handled = True
sending(TextBox1.Text)
End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
con.Connect("a1pha.de", 6667)
timer1.Enabled = True
End Sub
End Class
//edit: timer1 ist auf "1" gesetzt, habe aber auch schon mit anderen werten gespielt, ändert nichts am zustand. button3 sorgt für den verbindungsaufbau, button1 und button2 sind die "stop" und "play" - buttons.
//edit2: http://picpaste.de/vbasic_1.jpg << da ist der screenshot, sorry.
Zuletzt bearbeitet: