Hallo,
Ich habe schon seit einer Woche ein problem mit vb.net.
Gerade erst bin ich von vb6 auf vb.net umgestiegen!
Mein Problem: ich kann in einem Sub nichts zu einer listview hinzufügen!
Mein code:
[highlight=vbnet]Imports System.Windows.Forms
Imports System
Imports System.Net.Sockets
Imports System.Net
Imports System.Text
Public Class Form1 ' der ganze code ist in form1, ich habe kein modul genommen
Dim cSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim tSocket As Socket
Dim cCount As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
startListen()
ListView1.AutoResizeColumns(ColumnHeaderAutoResize Style.HeaderSize)
End Sub
Public Sub startListen()
Dim IPeo As New IPEndPoint(IPAddress.Parse("0.0.0.0"), 7878)
cSocket.Bind(IPeo)
cSocket.Listen(100)
Dim ConnectThread As New System.Threading.Thread(AddressOf AcceptConnections)
ConnectThread.Start()
End Sub
Public Sub AcceptConnections()
Do While True
tSocket = cSocket.Accept
cCount += 1
Dim ReceiveThread As New System.Threading.Thread(AddressOf recvData)
ReceiveThread.Start()
Send(tSocket, "Authenticate//1234")
Loop
End Sub
Public Sub recvData()
On Error Resume Next
Dim rSocket As Socket = tSocket
Dim recvBytes(5024) As Byte ' Übertrieben O_O
Dim recvBytesLen As Integer = 0
Dim Packet() As Byte = Nothing
Dim strPacket As String = Nothing
Do While True
recvBytesLen = rSocket.Receive(recvBytes, 1024, SocketFlags.None)
If rSocket.Connected = True And recvBytesLen > 0 Then
ReDim Preserve Packet(recvBytesLen)
Array.Copy(recvBytes, 0, Packet, 0, recvBytesLen)
strPacket = Encoding.Default.GetString(Packet)
AnalyzePacket(rSocket, strPacket) ' hier wird die sub in der der fehler ist aufgerufen
Else
Exit Do
End If
Loop
End Sub
Private Sub AnalyzePacket(ByVal sSocket As Socket, ByVal Message As String)
Dim command() As String = Message.Split("//")
Select Case command(0)
'das ruft er nicht auf, der addet nix -.-
Case "INFO"
Dim info() As String = Split(Message, "//")
Dim SplitInfo() As String = Split(info(1), ";;")
ListView1.Items(0).Text = "warar" ' hier entsteht der fehler ! Alle sachen hiernach werden nicht mehr ausgeführt und auch zu listview wird nichts hinzugefügt
Case Else
MsgBox("Nicht gültig..!")
End Select
MsgBox(command(0) & "|" & Len(command(0)))
End Sub
End Class[/highlight]
Das Problem liegt bei ListView1.Items(0).Text = "warar" ;
Das wird nicht aufgerufen und auch alle messageboxen oder anderes die nach items(0).text kommen werden nicht mehr ausgeführt, das heißt das programm bricht an dieser stelle ab, sozusagen wie mit exit sub!
SanCo
Ich habe schon seit einer Woche ein problem mit vb.net.
Gerade erst bin ich von vb6 auf vb.net umgestiegen!
Mein Problem: ich kann in einem Sub nichts zu einer listview hinzufügen!
Mein code:
[highlight=vbnet]Imports System.Windows.Forms
Imports System
Imports System.Net.Sockets
Imports System.Net
Imports System.Text
Public Class Form1 ' der ganze code ist in form1, ich habe kein modul genommen
Dim cSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim tSocket As Socket
Dim cCount As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
startListen()
ListView1.AutoResizeColumns(ColumnHeaderAutoResize Style.HeaderSize)
End Sub
Public Sub startListen()
Dim IPeo As New IPEndPoint(IPAddress.Parse("0.0.0.0"), 7878)
cSocket.Bind(IPeo)
cSocket.Listen(100)
Dim ConnectThread As New System.Threading.Thread(AddressOf AcceptConnections)
ConnectThread.Start()
End Sub
Public Sub AcceptConnections()
Do While True
tSocket = cSocket.Accept
cCount += 1
Dim ReceiveThread As New System.Threading.Thread(AddressOf recvData)
ReceiveThread.Start()
Send(tSocket, "Authenticate//1234")
Loop
End Sub
Public Sub recvData()
On Error Resume Next
Dim rSocket As Socket = tSocket
Dim recvBytes(5024) As Byte ' Übertrieben O_O
Dim recvBytesLen As Integer = 0
Dim Packet() As Byte = Nothing
Dim strPacket As String = Nothing
Do While True
recvBytesLen = rSocket.Receive(recvBytes, 1024, SocketFlags.None)
If rSocket.Connected = True And recvBytesLen > 0 Then
ReDim Preserve Packet(recvBytesLen)
Array.Copy(recvBytes, 0, Packet, 0, recvBytesLen)
strPacket = Encoding.Default.GetString(Packet)
AnalyzePacket(rSocket, strPacket) ' hier wird die sub in der der fehler ist aufgerufen
Else
Exit Do
End If
Loop
End Sub
Private Sub AnalyzePacket(ByVal sSocket As Socket, ByVal Message As String)
Dim command() As String = Message.Split("//")
Select Case command(0)
'das ruft er nicht auf, der addet nix -.-
Case "INFO"
Dim info() As String = Split(Message, "//")
Dim SplitInfo() As String = Split(info(1), ";;")
ListView1.Items(0).Text = "warar" ' hier entsteht der fehler ! Alle sachen hiernach werden nicht mehr ausgeführt und auch zu listview wird nichts hinzugefügt
Case Else
MsgBox("Nicht gültig..!")
End Select
MsgBox(command(0) & "|" & Len(command(0)))
End Sub
End Class[/highlight]
Das Problem liegt bei ListView1.Items(0).Text = "warar" ;
Das wird nicht aufgerufen und auch alle messageboxen oder anderes die nach items(0).text kommen werden nicht mehr ausgeführt, das heißt das programm bricht an dieser stelle ab, sozusagen wie mit exit sub!
SanCo
Comment