34 lines
		
	
	
		
			665 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			665 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| var net = require('net');
 | |
| var http = require('http');
 | |
| 
 | |
| var http80 = http.createServer(function (req, res) {
 | |
|   res.end('Hello, World!');
 | |
| });
 | |
| 
 | |
| var tcp80 = net.createServer(function (socket) {
 | |
| 
 | |
|   socket.once('data', function (chunk) {
 | |
| 
 | |
|     if (/http\/1/i.test(chunk.toString())) {
 | |
|       console.log("looks like http, continue");
 | |
|       http80.emit('connection', socket);
 | |
|     } else {
 | |
|       console.log("looks like tcp, die");
 | |
|       socket.end();
 | |
|     }
 | |
| 
 | |
|     socket.pause();
 | |
|     process.nextTick(function () {
 | |
|       socket.emit('data', chunk);
 | |
|       socket.resume();
 | |
|     });
 | |
|   });
 | |
| 
 | |
| });
 | |
| 
 | |
| tcp80.listen(80, function () {
 | |
|   console.log('listening on 80');
 | |
| });
 |