Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Node.js ve TCP socket meseleleri


Sypro

Öne çıkan mesajlar

Aşağıda bi tane de socket.io ile olan vardı ama ben dümdüz createServer diyip açıyorum.

server.js


var net = require('net');

var server = net.createServer( function( client ) {
console.log('Connected: '+ new Date().toISOString() );

client.on('data', function(data) {

client.setEncoding('utf8');

var buffer = new Buffer( data, 'ascii' );

console.log( buffer );

client.end();
});

client.on('close', function(data) {
console.log( 'Closed: '+ new Date().toISOString() );
});

client.on('end', function() {
console.log( 'Disconnected: '+ new Date().toISOString() );
});

client.pipe( client );

});

server.listen( 2593, function() {
console.log('Ready...');

server.on('error', function(e) {
if ( e.code == 'EADDRINUSE' ) {
console.log( 'Error: EADDRINUSE' );
}

if ( e.code == 'ECONNRESET' ) {
console.log( 'Error: ECONNRESET' );
}
});

});



Bağlanmayı denediğimdeyse ekranda şunu görüyorum:


<Buffer ef c0 a8 f2 01 00 00 00 07 00 00 00 00 00 00 00 12 00 00 00 00>


typeof ile kontrol edince ve data'nın object tipinde olduğunu görünce data.toJSON() ile biraz daha anlaşılır hale getirmeyi başardım:

[ 239, 192, 168, 242, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0 ]


hatta azcık daha ileri gittim ve "acaba read falan denesem nasıl olur" diyip buffer.readUInt32LE(0) ile buffer.readUInt32BE(0) şunlara ulaştım:

4071145711
4022380786


tabi hala bişey ifade etmedikleri için bir de son olarak Uint8Array( data ) deneyeyim dedim. o da şunu verdi:

Uint8Array()


{ '0': 239,
'1': 192,
'2': 168,
'3': 242,
'4': 1,
'5': 0,
'6': 0,
'7': 0,
'8': 7,
'9': 0,
'10': 0,
'11': 0,
'12': 0,
'13': 0,
'14': 0,
'15': 0,
'16': 18,
'17': 0,
'18': 0,
'19': 0,
'20': 0,
BYTES_PER_ELEMENT: 1,
get: [Function: get],
set: [Function: set],
slice: [Function: slice],
subarray: [Function: subarray],
buffer:
{ '0': 239,
'1': 192,
'2': 168,
'3': 242,
'4': 1,
'5': 0,
'6': 0,
'7': 0,
'8': 7,
'9': 0,
'10': 0,
'11': 0,
'12': 0,
'13': 0,
'14': 0,
'15': 0,
'16': 18,
'17': 0,
'18': 0,
'19': 0,
'20': 0,
slice: [Function: slice],
byteLength: 21 },
length: 21,
byteOffset: 0,
byteLength: 21 }



En son RFID işleriyle uğraşırken C ortamında buffer ile bişeyler yapıyordum. Şu an hiçbir fikrim yok nedir ne değildir ne yapıyorduk. Şu gelen şeyi ne yapsam da adam gibi okuyabilsem?
Saygılar, sevgiler.
Link to comment
Sosyal ağlarda paylaş

şimdi başka bir client versiyonu ile deneyince fark ettim ki bana gelen şey ip adresi ve client versiyonunu da içeren bir paketmiş. şöyle ki;

[ 239, 192, 168, 242, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0 ]

yani ip = 192.168.242.1 ve versiyon = 7.0.18.0 demeye uğraşıyormuş. baştaki değer tüm versiyonlarda aynı geldiği için onun da paketin ne olduğunu söyleyen bişeyler olduğuna kanaat getirdim. 2 diğer örnek için bkz:


[ 239, 192, 168, 242, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0 ]


[ 239, 192, 168, 242, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 2 ]

döküman okumaya başlarsam uyku olmaz bu gece. o yüzden burda kesip, başardığımı düşünerek uyumaya gidiyorum. bir sonraki adımda twofish falan girecek işin içine, iyice karışacak ortalık.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...