Hi,
Ich möchte diverse Daten per System.Net.Sockets empfangen. Das senden gelingt mir schon. Das Problem ist aber, das beim empfangen das Programm crasht und immer nur dieser Fehler kommt. Ich hab es mit Google probiert, aber dort sind nur tuts, wie man socket mit Tcpclient und Tcplistener verwendet (Was ich aber nicht will).
Der Fehler:
Fehler: System.ObjectDisposedException: Auf das verworfene Objekt kann nicht zugegriffen werden.
Objektname: "System.Net.Sockets.Socket".
bei System.Net.Sockets.Socket.get_Available()
bei SocketTest.Module1.Main() in C:\Users\gespa1\AppData\Local\Temporary Projects\SocketTest\Module1.vb:Zeile 29.
Verstehe nicht, wo der Fehler liegen soll
mfg
gfc
Ich möchte diverse Daten per System.Net.Sockets empfangen. Das senden gelingt mir schon. Das Problem ist aber, das beim empfangen das Programm crasht und immer nur dieser Fehler kommt. Ich hab es mit Google probiert, aber dort sind nur tuts, wie man socket mit Tcpclient und Tcplistener verwendet (Was ich aber nicht will).
Der Fehler:
Fehler: System.ObjectDisposedException: Auf das verworfene Objekt kann nicht zugegriffen werden.
Objektname: "System.Net.Sockets.Socket".
bei System.Net.Sockets.Socket.get_Available()
bei SocketTest.Module1.Main() in C:\Users\gespa1\AppData\Local\Temporary Projects\SocketTest\Module1.vb:Zeile 29.
VB.NET-Quellcode
- Imports System.Net.Sockets
- Imports System.Text
- Imports System.Net
- Module Module1
- Sub Main()
- Dim client As Socket
- Console.Write("IP-Adresse: ")
- Dim ip As String = Console.ReadLine()
- Console.Write("Port: ")
- Dim port As String = Console.ReadLine()
- While (True)
- Console.Write("Text[Go]:")
- Dim Input As String = Console.ReadLine
- If Input.Trim = Nothing Then Input = "Go"
- Dim data As Byte() = Encoding.ASCII.GetBytes(Input)
- Try
- client = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
- Dim portSelect As Integer = Convert.ToInt16(port)
- client.Bind(New IPEndPoint(IPAddress.Any, 80))
- Dim remoteIPAddress As System.Net.IPAddress = System.Net.IPAddress.Parse(ip)
- Dim remoteEndPoint As New System.Net.IPEndPoint(remoteIPAddress, portSelect)
- client.Connect(remoteEndPoint)
- client.Send(data)
- client.Close()
- Dim bytesReceived As Integer = client.Available
- Dim buffer As Byte() = New Byte(bytesReceived - 1) {}
- Dim byteCount As Integer = client.Receive(buffer, bytesReceived, SocketFlags.None)
- Dim received As New String(Encoding.ASCII.GetChars(buffer))
- Console.WriteLine(received)
- Catch Ex As Exception
- Dim restore_color = Console.ForegroundColor
- Console.ForegroundColor = ConsoleColor.Red
- Console.WriteLine("Fehler: " & Ex.ToString)
- Console.ForegroundColor = restore_color
- End Try
- End While
- End Sub
- End Module
Verstehe nicht, wo der Fehler liegen soll
mfg
gfc