SPLServer (Serversoftware) + SPLParser

    • Beta

    Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von knurbl.

      Dafür brauchst du eigentlich kein Tutorial.
      Du schreibst dir einfach einen kleinen TCP Server (Hier gibts Tutorials für) , der auf irgend nem Port hört. Dann gehste mit nem Browser auf den Port 127.0.0.1:xxxx und dann schaust du dir mal an was dir der Browser so zuschickt.
      Ja :), wie geil :D, der Server empfaengt HTTP-Daten :). Wie kann ich Daten zurueckschicken, also das die im Browser geparst & angeziegt werden? Ich benutze kevins89 Multiserver.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „knurbl“ ()

      Das habe ich mit Header-Dateien gemeint ^^, vielen Dank, ich bin noch ein ziemlicher Noob wenn's um dieses ganze HTTP-Zeug geht, Zeit, wieder mal was zu lernen.

      Ok, hab's jetzt einigermassen geschafft, jedoch wird der Content so oft wie die uebermittlent Daten geschickt weil es sich ja in der Do-Schleife befindet, hier der Code:


      Also, in der Sub Main() bevor Dim t As New Threading.Thread(AddressOf ListenToConnection)
      t.Start(c) sende ich die Header-Daten:

      VB.NET-Quellcode

      1. SendToAllClients("HTTP/1.1 200 OK" & vbNewLine & "Date: Fri, 13 Jan 2006 15:12:48 GMT" & vbNewLine & "Last-Modified: Tue, 10 Jan 2006 11:18:20 GMT" & vbNewLine & "Content(-Language) : de()" & vbNewLine & "Content-Type: text/html; charset=utf-8")


      Und die ListenToconnection sieht so aus;

      VB.NET-Quellcode

      1. Private Sub ListenToConnection(ByVal con As Connection)
      2. Do
      3. Try
      4. Dim tmp As String = con.streamr.ReadLine ' warten, bis etwas empfangen wird...
      5. Console.WriteLine(con.nick & ": " & tmp)
      6. ' SendToAllClients(con.nick & ": " & tmp) ' an alle clients weitersenden.
      7. ' My.Computer.FileSystem.WriteAllText("log.txt", con.nick & tmp, True)
      8. SendAnswer()
      9. Catch ' die aktuelle überwachte verbindung hat sich wohl verabschiedet.
      10. list.Remove(con)
      11. Console.WriteLine(con.nick & " exited.")
      12. Exit Do
      13. End Try
      14. Loop
      15. End Sub
      16. Private Sub SendAnswer()
      17. Dim answer = IO.File.ReadAllText("answer.txt")
      18. SendToAllClients(answer)
      19. End Sub


      (die answer.txt - nur zum Test - befindet sich HTML drinne. Das Ergebnis ist (YT-Video :DD):



      Was mach ich falsch?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „knurbl“ ()

      was ist denn bei con.Nick jeweils drinne?! Ich hoffe nichts, denn das sollte weg sein, schließlich brauchst du von einem WebBrowser keinen Nick mehr erwarten...
      SendToAllClients ist hier ebenfalls völlig fehl am Platz...
      du kannst hier direkt mit con.streamw.Write die Antwort senden(somit nur an den, der die Anfrage gestellt hat) - schließlich willst du ja nicht, dass ich auf Google navigier und es bei dir dann angezeigt wird^^

      Quellcode

      1. "HTTP/1.1 200 OK" & vbNewLine & "Date: Fri, 13 Jan 2006 15:12:48 GMT" & vbNewLine & "Last-Modified: Tue, 10 Jan 2006 11:18:20 GMT" & vbNewLine & "Content(-Language) : de()" & vbNewLine & "Content-Type: text/html; charset=utf-8" & vbNewLine & vbNewLine

      sendest du erst nachdem der Client die Dateianfrage gesendet hat und direkt hinterher den Dateiinhalt...
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      mach die Nick-Variable und alles, was damit zusammenhängt einfach mal komplett weg...
      Dann liest du, da wo du die Verbindung bekommen hast den Get-Befehl aus und Antwortest wie oben beschrieben...
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---