Can anyone help?
Code: Select all
;\\------------------------------
;\\-Title------------------------
;\\------------------------------
InitNetwork()
;\\-Notes--
; Started:
; Completed:
; Version:
; Authors: Peter Marsh
; Type: Program
;
; COPYRIGHT ZERO POINT FIVE AND A HALF 2005
;\\--------
;\\-Constants--------------------
;\\Version
#Version="Beta"
;\\Buffer
#Buffer=10000
;\\------------------------------
;\\-Structures-------------------
;\\------------------------------
;\\-Variables--------------------
;\\Server
Global Port
Port=6000
;\\Buffers
*Buffer=AllocateMemory(#Buffer)
;\\------------------------------
;\\-Includes---------------------
;\\------------------------------
;\\-Declares---------------------
;\\Misc
Declare Error()
OnErrorGosub(@Error())
;\\Parse
Declare Parse(ID,*Buffer)
;\\------------------------------
;\\-Main-------------------------
If CreateNetworkServer(Port)
Else
MessageRequester("Alert","Could not create server on port: "+Str(Port)+".")
End
EndIf
Repeat
Select NetworkServerEvent()
Case 1 ;Connection
Case 2 ;Data
ID=NetworkClientID()
ReceiveNetworkData(ID,*Buffer,#Buffer)
Parse(ID,*Buffer)
FreeMemory(*Buffer)
*Buffer=AllocateMemory(*Buffer)
Case 4 ;Disconnection
EndSelect
Delay(10)
Until EndLoop=1
;\\------------------------------
;\\-Procedures-------------------
;\\Parse
Procedure Parse(ID,*Buffer)
Request.s=PeekS(*Buffer)
If Mid(Request,1,3)="GET" : Command.s="GET" : ElseIf Mid(Request,1,4)="POST" : Command.s="POST" : EndIf
URL.s=Mid(Request,Len(Command)+9,FindString(Request," HTTP/1.0",1)-12)
If Right(URL,1)="/" : URL=Mid(URL,1,Len(URL)-1) : EndIf
Select Command
Case "GET"
Connection=OpenNetworkConnection(URL,80)
If Connection<>0
Debug 1
SendNetworkData(Connection,*Buffer,Len(Request))
Repeat
Select NetworkClientEvent(Connection)
Case 2
*SubBuffer=AllocateMemory(#Buffer)
Result=ReceiveNetworkData(Connection,*SubBuffer,#Buffer)
If Result<#Buffer
BuffLen+Result
*Total+*SubBuffer
Endit=1
Else
BuffLen+Result
*Total+*SubBuffer
EndIf
FreeMemory(*SubBuffer)
EndSelect
Until Endit=1
CloseNetworkConnection(Connection)
SendNetworkData(ID,*Total,BuffLen+1)
Debug BuffLen
Else
EndIf
Case "POST"
EndSelect
EndProcedure
;\\Error
Procedure Error()
MessageRequester("Error",GetErrorDescription())
End
EndProcedure
;\\------------------------------
End
;\\-End--------------------------


