Advertisement
Guest User

Untitled

a guest
Jun 17th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SuperStrict
  2.  
  3. Framework BRL.Socket
  4. Import BRL.StandardIO
  5. Import BRL.SocketStream
  6. Import BRL.PNGLoader
  7. Import BRL.Retro
  8. Import BRL.System
  9.  
  10.  
  11. Local connect:TSocket=CreateTCPSocket()
  12.  
  13. BindSocket connect,7889
  14. SocketListen(connect)
  15.  
  16.  
  17.  
  18. Local buffer:Byte Ptr
  19. Local count:Int
  20.  
  21.  
  22. While True
  23.     Local time:String=CurrentTime()
  24.     If time[..2]="00" End
  25.     Local browser:TSocket=SocketAccept(connect)
  26.     If browser<>Null
  27.         GetSite(browser)
  28.         CloseSocket(browser)
  29.         browser=Null
  30.     EndIf
  31. Wend
  32.  
  33.  
  34.  
  35. Function GetSite(socket:TSocket)
  36.  
  37.  
  38.     Print HostName(SocketRemoteIP(socket))
  39.  
  40.     Local stream:TStream=CreateSocketStream(socket)
  41.     Delay 500
  42.     If SocketReadAvail(socket)=0 Return
  43.     Local get_site:String=ReadString(stream,SocketReadAvail(socket))
  44.     'Lese aus get_site die gewünschte Internetsite
  45.    
  46.     Local leer_count:Int=0
  47.    
  48.     For Local i:Int=1 To Len(get_site)
  49.         If get_site[i]=13
  50.             get_site=get_site[..i]
  51.             leer_count=1
  52.             Exit
  53.         EndIf
  54.     Next
  55.    
  56.     If leer_count=0 get_site="GET /main.html "
  57.     leer_count=0
  58.    
  59.     Print get_site
  60.    
  61.     For Local i:Int=1 To Len(get_site)
  62.         If get_site[i-1]=32 leer_count=leer_count+1
  63.     Next
  64.     If leer_count<2 get_site="GET /main.html "
  65.    
  66.     For Local i:Int=1 To Len(get_site)
  67.         If get_site[i-1]=32
  68.             get_site=get_Site[i..]
  69.             Exit
  70.         EndIf
  71.     Next
  72.     For Local i:Int=1 To Len(get_site)
  73.         If get_site[i-1]=32
  74.             get_site=get_site[..(i-1)]
  75.             Exit
  76.         EndIf
  77.     Next
  78.  
  79.     If get_site="/" get_site="/main.html"
  80.     Print get_site
  81.    
  82.     Local real_site:String
  83.  
  84.     Select get_site
  85.        
  86.     Case "/main.html"
  87.         real_site="main.html"
  88.     Case "/picture.png"
  89.         real_site="fliege.png"
  90.     Default
  91.         real_site="error.html"
  92.     End Select
  93.    
  94.  
  95.     stream.WriteLine "HTTP OK 200"
  96.     stream.WriteLine ""
  97.    
  98.  
  99.     Local site:TStream=ReadStream(real_site)
  100.    
  101.     If site=Null
  102.         stream.WriteLine "--site-not-found--"
  103.     Else
  104.         If real_site[(Len(real_site)-4)..]="html"
  105.             While Eof(site)=0
  106.                 stream.WriteLine Replace(Replace(Replace(ReadLine(site),"%REQUPAG%",get_site),"%REQUIP%",DottedIP(SocketRemoteIP(socket))),"%REQUTIME%",CurrentTime())
  107.             Wend
  108.         Else
  109.             While Eof(site)=0
  110.                 stream.WriteByte ReadByte(site)
  111.             Wend
  112.         EndIf
  113.         CloseStream site
  114.     EndIf
  115.    
  116.  
  117. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement