Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- webserver/server.lua
- ]]
- --require( "glsock2" );
- require( "bromsock");
- webserver.server = {};
- local server = webserver.server;
- --[[
- function server.New( )
- if ( server.server ) then
- server.server:Cancel();
- server.server:Close();
- end
- server.server = GLSock(GLSOCK_TYPE_ACCEPTOR);
- server.server:Bind( "127.0.0.1", 80, server.Bind );
- end
- function server.Bind( socket, error )
- if( error == GLSOCK_ERROR_SUCCESS ) then
- print("Bound to port 80")
- socket:Listen(0, server.Listen)
- end
- end
- function server.Listen( socket, error )
- if( error == GLSOCK_ERROR_SUCCESS ) then
- print("Listening on port 80")
- socket:Accept(server.Accept)
- end
- end
- function server.Accept( socket, client, error )
- if( error == GLSOCK_ERROR_SUCCESS ) then
- print("New Client")
- socket:ReadUntil( "\r\n\r\n", server.ReadPacket )
- end
- if( error != GLSOCK_ERROR_OPERATIONABORTED ) then
- socket:Accept(server.Accept) -- Keep accepting
- end
- end
- function server.ReadPacket( handle, buffer, error )
- print( handle, buffer, error )
- print("Received " .. buffer:Size() .. " bytes");
- local count, str = buffer:Read( buffer:Size() )
- print( count, str )
- end
- ]]
- function server.New( )
- if ( server.server ) then server.server:Close() end
- server.server = BromSock();
- if (not server.server:Listen(80)) then
- print("[BS:S] Failed to listen!")
- else
- print("[BS:S] Server listening...")
- end
- server.server:SetCallbackAccept(function(serversock, clientsock)
- print("[BS:S] Accepted:", serversock, clientsock)
- clientsock:SetCallbackReceive(function(sock, packet)
- print("[BS:S] Received:", sock, packet)
- print("[BS:S] R_Num:", packet:ReadUntil("\r\n\r\n"))
- --webserver.HTTP.HandleRequest( packet:ReadStringAll() )
- end)
- clientsock:SetCallbackDisconnect(function(sock)
- print("[BS:S] Disconnected:", sock)
- end)
- clientsock:SetTimeout(1000) -- timeout send/recv commands in 1 second. This will generate a Disconnect event if you're using callbacks
- clientsock:Receive()
- serversock:Accept()
- end)
- server.server:Accept()
- end
- server.New( )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement