Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// <reference path="typings/node.d.ts" />
- var net = require('net');
- var baseDire = '';
- var srv = net.createServer(function(c) {
- c.setEncoding('utf8');
- console.log('Client connected : %s', c.remoteAddress);
- console.log('Awaiting authentication...');
- var packet;
- c.on('data', function (data) {
- console.log("Data received: ", data);
- var from = 0;
- while (true) {
- var start = data.indexOf('<', from),
- end = data.indexOf('>', from);
- // < ... >
- if (start != -1 && end != -1 && end > start) {
- packet = data.substring(start, end + 1);
- packetReceived(packet, c);
- from = end + 1;
- }
- // < ...
- else if(start != -1 && end == -1) {
- packet = data.substring(start, data.length);
- break;
- }
- // ... >
- // ... >< ... >
- else if ((start == -1 && end != -1) || end < start) {
- packet += data.substring(0, end + 1);
- from = end + 1;
- packetReceived(packet, c);
- }
- else {
- break;
- }
- }
- console.log('End of data event');
- });
- c.write('Welcome to D*****FTP server\r\n');
- c.on('end', function() {
- console.log('Client disconnected');
- });
- });
- srv.listen(8096, function () {
- console.log('Server bound');
- });
- //Must change to support multi user
- var status;
- var packetReceived = function (packet, socket) {
- if(!status) {
- //Login
- return;
- }
- switch (packet.cmd) {
- case 'upload':
- status = 'uploading';
- break;
- case 'download':
- break;
- case 'list':
- break;
- }
- console.log("Packet received: %s (%d)", packet, packet.length);
- };
- var readPacket = function (str) {
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement