Changeset 37

Show
Ignore:
Timestamp:
04/08/06 13:14:04 (2 years ago)
Author:
tueda2
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/overhaul_host.js

    r36 r37  
    1 myDump("Host included!"); 
     1alert("Host included!"); 
     2//* 
     3//* myDump(theMessage) 
     4//* 
     5//*     Display the given message in the Javascript console.  No titles or 
     6//* other information will be displayed with it. 
     7//* 
     8//* PARAMETER: 
     9//*     theMessage: The message to be displayed: 
     10//* 
     11function myDump(theMessage){ 
     12        var consoleService = Components.classes["@mozilla.org/consoleservice;1"] 
     13                .getService(Components.interfaces.nsIConsoleService); 
     14        consoleService.logStringMessage("Server: " + theMessage); 
     15
     16 
     17//Client IP address 
     18var ipClient; 
     19 
     20//Client port number 
     21var portClient; 
     22 
     23// Set up the listening server. 
     24var serverSocket = Components.classes["@mozilla.org/network/server-socket;1"] 
     25                                                        .createInstance(Components.interfaces.nsIServerSocket); 
     26                                                         
     27//*                                                      
     28//* This will create the listener for the server socket. 
     29//* IMPLEMENTS: nsIServerSocketListener 
     30//* 
     31var serverListener =  
     32
     33        //* 
     34        //* onSocketAccepted 
     35        //* 
     36        //* Called when the server socket accepts a new connection.  This 
     37        //* connection is passed to an nsITransport, included as a parameter. 
     38        //* 
     39        //* PARAMETERS: 
     40        //*             serverSocket: The socket which took the connection 
     41        //*             transport: The nsITransport generated by accepting the connection. 
     42        //* 
     43        onSocketAccepted : function(serverSocket, transport)    { 
     44                try     { 
     45                        var outputString = "HTTP/1.1 200 OK\r\n"; 
     46                         
     47                        // Write the message back. 
     48                        var output = transport.openOutputStream(0,0,0); 
     49                                        output.write(outputString,outputString.length); 
     50                        myDump("Sent OK header"); 
     51                                 
     52                        // Get an input stream for this transport.       
     53                        var input = transport.openInputStream(0,0,0); 
     54                         
     55                        // Set up a pump to funnel input to a listener 
     56                        var pump = Components.classes["@mozilla.org/network/input-stream-pump;1"]. 
     57               createInstance(Components.interfaces.nsIInputStreamPump); 
     58                          pump.init(input, -1, -1, 0, 0, false); 
     59                          pump.asyncRead(dataListener,null); 
     60                          myDump("Should be pumping..."); 
     61                         
     62                         
     63                } catch(ex2){ dump("::"+ex2); } 
     64        } 
     65
     66 
     67// Initialize the server socket.                                 
     68serverSocket.init(7055,false,-1); 
     69serverSocket.asyncListen(serverListener); 
     70myDump("Listening!"); 
     71 
     72var myObserver = { 
     73        observe: function(subject,topic,data){ 
     74                subject = subject.QueryInterface(Components.interfaces.nsIHttpChannel); 
     75                subject.setRequestHeader("Supports", "Overhaul 50 5000", false); 
     76        } 
     77
     78 
     79 
     80//* 
     81//* This is the listener for accepted connections, and it will handle 
     82//* the passage of data 
     83//*  
     84 
     85var tempString=""; 
     86var dataListener = { 
     87        contentRead : "", 
     88         
     89        onStartRequest: function(request, context)      { 
     90                myDump("Starting receive step!"); 
     91        }, 
     92 
     93        onStopRequest: function(request, context, status)       { 
     94                myDump("Receiving complete!"); 
     95 
     96        }, 
     97     
     98        onDataAvailable: function(request, context, inputStream, offset, count) { 
     99                var sinput = Components.classes["@mozilla.org/scriptableinputstream;1"] 
     100                                .createInstance(Components.interfaces.nsIScriptableInputStream); 
     101                sinput.init(inputStream); 
     102                var newinput = sinput.read(count); 
     103                myDump("Data is available: " + newinput); 
     104                contentRead+=newinput; 
     105                tempString+=newinput; 
     106 
     107                var test = "HOST"; 
     108                var portTest = "Overhaul-port: <"; 
     109                //recive ip address 
     110                var i=0; 
     111                for(;i<(tempString.length);i++){ 
     112                if(tempString.substring(i,i+4)==test){ 
     113                        break; 
     114                        } 
     115                } 
     116                var j=i; 
     117                for(;j<(tempString.length);j++){ 
     118                        if(tempString.substring(j,j+1)=="\n"){ 
     119                                break; 
     120                                } 
     121                } 
     122                window._content.document.write(tempString.substring(i+5,j)); 
     123                ipClient=tempString.substring(i,j); 
     124                 
     125                //recive port number 
     126                i=0; 
     127                for(;i<(tempString.length);i++){ 
     128                        if(tempString.substring(i,i+16)==portTest){ 
     129                                break; 
     130                                } 
     131                } 
     132                j=i; 
     133                for(;j<(tempString.length);j++){ 
     134                        if(tempString.substring(j,j+2)==">\n"){ 
     135                                break; 
     136                                } 
     137                } 
     138                window._content.document.write(tempString.substring(i+16,j)); 
     139                portClient=tempString.substring(i+16,j); 
     140        }, 
     141}; 
     142 
     143var listener = { 
     144        finished : function(data){ 
     145                dump(data); 
     146        } 
     147}  
     148 
     149function sendSomething()        { 
     150        var observerService = Components.classes["@mozilla.org/observer-service;1"] 
     151        .getService(Components.interfaces.nsIObserverService); 
     152         
     153        observerService.addObserver(myObserver,"http-on-modify-request",false); 
     154        var host="localhost"; 
     155        var port="7055"; 
     156         
     157        var transportService =Components.classes["@mozilla.org/network/socket-transport-service;1"] 
     158                                        .getService(Components.interfaces.nsISocketTransportService); 
     159        var cliantSocket = transportService.createTransport(null,0,host,port,null); 
     160        var outstream = cliantSocket.openOutputStream(0,0,0); 
     161         
     162        var sendingMessage="GET /file.html CHUNK <#> HTTP\1.0\n\n"; 
     163        outstream.write(sendingMessage,sendingMessage.length); 
     164         
     165        var sendingSecondMessage="HOST localhost\n\n"; 
     166        outstream.write(sendingSecondMessage,sendingSecondMessage.length); 
     167         
     168        var sendingPortMessage="Overhaul-port: <7055>\n\n"; 
     169        outstream.write(sendingPortMessage,sendingPortMessage.length); 
     170         
     171        var sendingHostsPortMessage="Overhaul-hosts: <localhost:7055>\n\n"; 
     172        outstream.write(sendingHostsPortMessage,sendingHostsPortMessage.length); 
     173         
     174        var sendingChunkMessage="Overhaul-hosts: <CHUNKDATA>\n\n"; 
     175        outstream.write(sendingChunkMessage,sendingChunkMessage.length); 
     176         
     177   
     178        var stream = cliantSocket.openInputStream(0,0,0); 
     179        var instream = Components.classes["@mozilla.org/scriptableinputstream;1"] 
     180          .createInstance(Components.interfaces.nsIScriptableInputStream); 
     181        instream.init(stream); 
     182 
     183        var pump = Components.classes["@mozilla.org/network/input-stream-pump;1"]. 
     184                createInstance(Components.interfaces.nsIInputStreamPump); 
     185        pump.init(stream, -1, -1, 0, 0, true); 
     186        pump.asyncRead(dataListener,null); 
     187         
     188        window._content.document.write("HI!\n"); 
     189 
     190
     191setTimeout('sendSomething();',1000); 
     192//window._content.document.write(tempString);