Etwas von Webseite an Programm senden.

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Gelöschter Benutzer.

    Etwas von Webseite an Programm senden.

    Hallo,

    ich möchte, wie es schon im titel steht, etwas von meiner Website an mein Programm senden.

    Als grundidee habe ich mir überlegt dass ich z.B. im Browser 127.0.0.1:12905/asdf aufrufe und mein Programm dann asdf auslesen wird.

    Hat jemand eine Idee wie ich das realisieren kann?

    Folgenden Code habe ich schon, aber sobald ich im Browser die IP+Port aufrufe, hört der nicht auf zu Laden

    VB.NET-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Dim IP() As Byte = {127, 0, 0, 1}
    4. Dim Port As Integer = 12905
    5. Dim Listener As New Net.Sockets.TcpListener(New System.Net.IPAddress(IP), Port)
    6. Dim enc As System.Text.Encoding = System.Text.Encoding.Default
    7. Listener.Start()
    8. Dim Socket As Net.Sockets.Socket = Listener.AcceptSocket
    9. While True
    10. While Socket.Available > 0
    11. Dim Buff(Socket.Available) As Byte
    12. Socket.Receive(Buff)
    13. For Each b As Byte In Buff
    14. Console.Write(Chr(b))
    15. Next
    16. Dim Resp As String = "HTTP/1.1 200 OK"
    17. Socket.Send(enc.GetBytes(Resp))
    18. End While
    19. End While
    20. End Sub
    21. End Module


    Danke für eure Hilfe
    Bekommst du denn den Header vom Browser in deiner Konsole angezeigt? Weil da müsste irgendwo GET /path/blabla stehen, und das ist ja das was du brauchst ;) Das er unendlich läd liegt daran, das du keine Conent-Length mitsendest ;)
    @LaMiy:
    Die Lösung habe ich ja schon geposted, Content-Length setzen und Socket trennen......

    VB.NET-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Dim IP() As Byte = {127, 0, 0, 1}
    4. Dim Port As Integer = 12905
    5. Dim Listener As New Net.Sockets.TcpListener(New System.Net.IPAddress(IP), Port)
    6. Dim enc As System.Text.Encoding = System.Text.Encoding.Default
    7. Listener.Start()
    8. Dim Socket As Net.Sockets.Socket = Listener.AcceptSocket
    9. While True
    10. While Socket.Available > 0
    11. Dim Buff(Socket.Available) As Byte
    12. Socket.Receive(Buff)
    13. For Each b As Byte In Buff
    14. Console.Write(Chr(b))
    15. Next
    16. Dim Resp As String = "HTTP/1.1 200 OK" & vbCrLf & _
    17. "Content-Length: 0"
    18. Socket.Send(enc.GetBytes(Resp))
    19. If Socket.Available = 0
    20. Socket.Close
    21. End If
    22. End While
    23. End While
    24. End Sub
    25. End Module


    aber ich machs jetzt sowieso mit dem HTTPListener.

    Gruß,
    Julian