• 0216 488 01 91
  • destek@sonsuzbilgi.com.tr

Firma Web Siteniz Var mı?

Mükemmel Bir Firma Web Siteniz Olsun, Bugün Kullanmaya Başlayın

*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle


Node.js Stream Kullanımıyla Network Programming

Adı : Node.js Stream Kullanımıyla Network Programming

Node.js, JavaScript kullanarak sunucu tarafında programlama yapabilmenizi sağlayan bir platformdur. Node.js, non-blocking I/O modeli ve event-driven mimarisi sayesinde hızlı ve verimli bir şekilde işlem yapabilir.

Bu yazıda, Node.js Stream kullanımıyla Network Programming konusuna detaylı bir şekilde değineceğiz. İlk olarak Stream kavramı ve Node.js Stream API'si hakkında bilgi edineceğiz. Daha sonra, Stream kullanarak TCP, UDP, HTTP ve WebSocket protokollerine göre sunucu ve istemci uygulamaları oluşturacağız.

Node.js Stream Kavramı ve API'si

Stream, verilerin okunup yazılabildiği bir akış yapısıdır. Bu akış yapısı, verileri küçük parçalara bölüp işleyerek bellek kullanımını minimize eder ve uygulamalarınızın daha verimli çalışmasını sağlar. Node.js, I/O işlemlerini Stream kavramıyla yönetir.

Node.js Stream API'si, herhangi bir okuma veya yazma işlemi için kullanabileceğiniz bir dizi sınıf, yöntem ve olaylar sağlar. Bu API üzerinden verileri okuyabilir, yazabilir ve manipüle edebilirsiniz.

Stream türleri

Node.js Stream API'si, kullanabileceğiniz üç tür Stream sunar:

1. Readable Stream: Verilerin okunması için kullanılır. Örneğin, HTTP istekleri veya disk dosyaları okunabilir.

2. Writable Stream: Verilerin yazılması için kullanılır. Örneğin, HTTP yanıtları veya disk dosyaları yazılabilir.

3. Duplex Stream: Hem okunabilir hem de yazılabilir Stream'dir. Örneğin, TCP soketleri veya WebSocket bağlantıları.

Basit bir Stream örneği

Şimdi, bir Readable Stream ve bir Writable Stream oluşturarak bunları birleştirelim ve bir dosya kopyalama uygulaması yapalım.

```javascript
const fs = require('fs');
const { Readable, Writable } = require('stream');

const readable = fs.createReadStream('input.txt');
const writable = fs.createWriteStream('output.txt');

readable.pipe(writable);

console.log('File copied successfully!');
```

Yukarıdaki kodda, Readable Stream 'input.txt' dosyasından verileri okurken, Writable Stream 'output.txt' dosyasına verileri yazacaktır. Pipe() yöntemi, Readable Stream'den gelen verileri Writable Stream'e aktaracaktır.

TCP Sunucusu ve İstemcisi

Şimdi, TCP protokolünü kullanarak basit bir Node.js TCP sunucusu ve istemcisini nasıl oluşturacağımıza bakalım.

TCP Sunucusu

```javascript
const net = require('net');

const server = net.createServer((socket) => {
console.log('Client connected.');

socket.on('data', (data) => {
console.log(`Received data: ${data}`);
socket.write('Server response.');
});

socket.on('end', () => {
console.log('Client disconnected.');
});
});

server.listen(8080, () => {
console.log('Server started.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, TCP sunucusu 8080 bağlantı noktası üzerinden dinlemeye başlayacaktır. Bir istemci sunucuya bağlandığında, bağlantı olayı tetiklenir ve \"Client connected.\" mesajı yazdırılır. İstemci sunucuya veri gönderdiğinde, \"Received data:\" mesajı ve veriler yazdırılır. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını yazdırır. İstemci bağlantısını sonlandırdığında, \"Client disconnected.\" mesajı yazdırılır.

TCP İstemcisi

```javascript
const net = require('net');

const client = new net.Socket();

client.connect(8080, 'localhost', () => {
console.log('Connected to server.');
client.write('Hello, server!');
});

client.on('data', (data) => {
console.log(`Received data: ${data}`);
client.destroy();
});

client.on('close', () => {
console.log('Connection closed.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, TCP istemcisi sunucuya bağlanacak ve \"Connected to server.\" mesajını yazdıracaktır. İstemci, sunucuya \"Hello, server!\" mesajını gönderecektir. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderecektir. İstemci, gelen verileri \"Received data:\" mesajıyla birlikte yazdırır ve bağlantıyı sonlandırır.

UDP Sunucusu ve İstemcisi

Şimdi, UDP protokolünü kullanarak basit bir Node.js UDP sunucusu ve istemcisini nasıl oluşturacağımıza bakalım.

UDP Sunucusu

```javascript
const dgram = require('dgram');

const server = dgram.createSocket('udp4');

server.on('listening', () => {
console.log('Server started.');
});

server.on('message', (msg, rinfo) => {
console.log(`Received message from ${rinfo.address}:${rinfo.port}: ${msg}`);
server.send('Server response.', rinfo.port, rinfo.address);
});

server.bind(8080);
```

Yukarıdaki kodu çalıştırdıktan sonra, UDP sunucusu 8080 bağlantı noktası üzerinden dinlemeye başlayacaktır. Bir istemci sunucuya mesaj gönderdiğinde, mesaj olayı tetiklenir ve \"Received message from:\" mesajı ve mesaj verileri yazdırılır. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderir.

UDP İstemcisi

```javascript
const dgram = require('dgram');

const client = dgram.createSocket('udp4');

client.on('message', (msg, rinfo) => {
console.log(`Received message from ${rinfo.address}:${rinfo.port}: ${msg}`);
client.close();
});

client.send('Hello, server!', 8080, 'localhost', (err) => {
if (err) {
console.error(err);
return;
}
console.log('Message sent to server.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, UDP istemcisi sunucuya mesaj gönderecektir. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderecektir. İstemci, gelen verileri \"Received message from:\" mesajıyla birlikte yazdırır ve bağlantıyı sonlandırır.

HTTP Sunucusu

Şimdi, HTTP protokolünü kullanarak basit bir Node.js HTTP sunucusu oluşturacağız.

```javascript
const http = require('http');

const server = http.createServer((req, res) => {
console.log(`Received ${req.method} request for ${req.url}.`);

res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('Server response.');
res.end();
});

server.listen(8080, () => {
console.log('Server started.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, HTTP sunucusu 8080 bağlantı noktası üzerinden dinlemeye başlayacaktır. Bir istemci sunucuya GET veya POST isteği gönderdiğinde, istek olayı tetiklenir ve istek yönlendirilir. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderir.

WebSocket Sunucusu

Son olarak, WebSocket protokolünü kullanarak basit bir Node.js WebSocket sunucusu oluşturalım.

```javascript
const http = require('http');
const WebSocket = require('ws');

const server = http.createServer();
const wss = new WebSocket.Server({ server });

wss.on('connection', (ws) => {
console.log('Client connected.');

ws.on('message', (message) => {
console.log(`Received message: ${message}`);
ws.send('Server response.');
});

ws.on('close', () => {
console.log('Client disconnected.');
});
});

server.listen(8080, () => {
console.log('Server started.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, WebSocket sunucusu 8080 bağlantı noktası üzerinden dinlemeye başlayacaktır. Bir istemci sunucuya bağlandığında, bağlantı olayı tetiklenir ve \"Client connected.\" mesajı yazdırılır. İstemci sunucuya mesaj gönderdiğinde, \"Received message:\" mesajı ve mesaj verileri yazdırılır. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderir. İstemci bağlantısını sonlandırdığında, \"Client disconnected.\" mesajı yazdırılır.

Sık Sorulan Sorular

1. Stream verilerini nasıl manipüle edebilirim?
- Stream verilerini manipüle etmek için, 'data', 'end' ve 'error' olaylarını kullanabilirsiniz. Örneğin, Readable Stream'den gelen verileri değiştirebilir veya Writable Stream'e yazmadan önce verileri işleyebilirsiniz.

2. Stream neden önemlidir?
- Stream, bellek kullanımını minimuma indirir ve uygulamalarınızın daha hızlı ve verimli çalışmasını sağlar. Ayrıca, Stream verilerini parçalara ayırarak işleyebilirsiniz. Bu, büyük dosyalarda veya yüksek trafikli ağlarda önemli bir avantajdır.

3. TCP, UDP, HTTP ve WebSocket protokollerini Stream kullanarak nasıl yönetebilirim?
- Bu protokollerin her biri için, Node.js Stream API'si kullanarak Readable, Writable veya Duplex Stream'leri oluşturabilirsiniz. Örneğin, TCP sunucusu ve istemcisi örneğinde, net modülü kullanılarak Duplex Stream oluşturuldu.

4. Node.js Stream API'si hakkında daha fazla bilgi nerede bulabilirim?
- Node.js Stream API'si hakkında daha fazla bilgi için, Node.js resmi web sitesindeki belgelere bakabilirsiniz. Ayrıca, Node.js Stream API'si üzerine birçok açık kaynaklı modül de mevcuttur."

Node.js Stream Kullanımıyla Network Programming

Adı : Node.js Stream Kullanımıyla Network Programming

Node.js, JavaScript kullanarak sunucu tarafında programlama yapabilmenizi sağlayan bir platformdur. Node.js, non-blocking I/O modeli ve event-driven mimarisi sayesinde hızlı ve verimli bir şekilde işlem yapabilir.

Bu yazıda, Node.js Stream kullanımıyla Network Programming konusuna detaylı bir şekilde değineceğiz. İlk olarak Stream kavramı ve Node.js Stream API'si hakkında bilgi edineceğiz. Daha sonra, Stream kullanarak TCP, UDP, HTTP ve WebSocket protokollerine göre sunucu ve istemci uygulamaları oluşturacağız.

Node.js Stream Kavramı ve API'si

Stream, verilerin okunup yazılabildiği bir akış yapısıdır. Bu akış yapısı, verileri küçük parçalara bölüp işleyerek bellek kullanımını minimize eder ve uygulamalarınızın daha verimli çalışmasını sağlar. Node.js, I/O işlemlerini Stream kavramıyla yönetir.

Node.js Stream API'si, herhangi bir okuma veya yazma işlemi için kullanabileceğiniz bir dizi sınıf, yöntem ve olaylar sağlar. Bu API üzerinden verileri okuyabilir, yazabilir ve manipüle edebilirsiniz.

Stream türleri

Node.js Stream API'si, kullanabileceğiniz üç tür Stream sunar:

1. Readable Stream: Verilerin okunması için kullanılır. Örneğin, HTTP istekleri veya disk dosyaları okunabilir.

2. Writable Stream: Verilerin yazılması için kullanılır. Örneğin, HTTP yanıtları veya disk dosyaları yazılabilir.

3. Duplex Stream: Hem okunabilir hem de yazılabilir Stream'dir. Örneğin, TCP soketleri veya WebSocket bağlantıları.

Basit bir Stream örneği

Şimdi, bir Readable Stream ve bir Writable Stream oluşturarak bunları birleştirelim ve bir dosya kopyalama uygulaması yapalım.

```javascript
const fs = require('fs');
const { Readable, Writable } = require('stream');

const readable = fs.createReadStream('input.txt');
const writable = fs.createWriteStream('output.txt');

readable.pipe(writable);

console.log('File copied successfully!');
```

Yukarıdaki kodda, Readable Stream 'input.txt' dosyasından verileri okurken, Writable Stream 'output.txt' dosyasına verileri yazacaktır. Pipe() yöntemi, Readable Stream'den gelen verileri Writable Stream'e aktaracaktır.

TCP Sunucusu ve İstemcisi

Şimdi, TCP protokolünü kullanarak basit bir Node.js TCP sunucusu ve istemcisini nasıl oluşturacağımıza bakalım.

TCP Sunucusu

```javascript
const net = require('net');

const server = net.createServer((socket) => {
console.log('Client connected.');

socket.on('data', (data) => {
console.log(`Received data: ${data}`);
socket.write('Server response.');
});

socket.on('end', () => {
console.log('Client disconnected.');
});
});

server.listen(8080, () => {
console.log('Server started.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, TCP sunucusu 8080 bağlantı noktası üzerinden dinlemeye başlayacaktır. Bir istemci sunucuya bağlandığında, bağlantı olayı tetiklenir ve \"Client connected.\" mesajı yazdırılır. İstemci sunucuya veri gönderdiğinde, \"Received data:\" mesajı ve veriler yazdırılır. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını yazdırır. İstemci bağlantısını sonlandırdığında, \"Client disconnected.\" mesajı yazdırılır.

TCP İstemcisi

```javascript
const net = require('net');

const client = new net.Socket();

client.connect(8080, 'localhost', () => {
console.log('Connected to server.');
client.write('Hello, server!');
});

client.on('data', (data) => {
console.log(`Received data: ${data}`);
client.destroy();
});

client.on('close', () => {
console.log('Connection closed.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, TCP istemcisi sunucuya bağlanacak ve \"Connected to server.\" mesajını yazdıracaktır. İstemci, sunucuya \"Hello, server!\" mesajını gönderecektir. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderecektir. İstemci, gelen verileri \"Received data:\" mesajıyla birlikte yazdırır ve bağlantıyı sonlandırır.

UDP Sunucusu ve İstemcisi

Şimdi, UDP protokolünü kullanarak basit bir Node.js UDP sunucusu ve istemcisini nasıl oluşturacağımıza bakalım.

UDP Sunucusu

```javascript
const dgram = require('dgram');

const server = dgram.createSocket('udp4');

server.on('listening', () => {
console.log('Server started.');
});

server.on('message', (msg, rinfo) => {
console.log(`Received message from ${rinfo.address}:${rinfo.port}: ${msg}`);
server.send('Server response.', rinfo.port, rinfo.address);
});

server.bind(8080);
```

Yukarıdaki kodu çalıştırdıktan sonra, UDP sunucusu 8080 bağlantı noktası üzerinden dinlemeye başlayacaktır. Bir istemci sunucuya mesaj gönderdiğinde, mesaj olayı tetiklenir ve \"Received message from:\" mesajı ve mesaj verileri yazdırılır. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderir.

UDP İstemcisi

```javascript
const dgram = require('dgram');

const client = dgram.createSocket('udp4');

client.on('message', (msg, rinfo) => {
console.log(`Received message from ${rinfo.address}:${rinfo.port}: ${msg}`);
client.close();
});

client.send('Hello, server!', 8080, 'localhost', (err) => {
if (err) {
console.error(err);
return;
}
console.log('Message sent to server.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, UDP istemcisi sunucuya mesaj gönderecektir. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderecektir. İstemci, gelen verileri \"Received message from:\" mesajıyla birlikte yazdırır ve bağlantıyı sonlandırır.

HTTP Sunucusu

Şimdi, HTTP protokolünü kullanarak basit bir Node.js HTTP sunucusu oluşturacağız.

```javascript
const http = require('http');

const server = http.createServer((req, res) => {
console.log(`Received ${req.method} request for ${req.url}.`);

res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('Server response.');
res.end();
});

server.listen(8080, () => {
console.log('Server started.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, HTTP sunucusu 8080 bağlantı noktası üzerinden dinlemeye başlayacaktır. Bir istemci sunucuya GET veya POST isteği gönderdiğinde, istek olayı tetiklenir ve istek yönlendirilir. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderir.

WebSocket Sunucusu

Son olarak, WebSocket protokolünü kullanarak basit bir Node.js WebSocket sunucusu oluşturalım.

```javascript
const http = require('http');
const WebSocket = require('ws');

const server = http.createServer();
const wss = new WebSocket.Server({ server });

wss.on('connection', (ws) => {
console.log('Client connected.');

ws.on('message', (message) => {
console.log(`Received message: ${message}`);
ws.send('Server response.');
});

ws.on('close', () => {
console.log('Client disconnected.');
});
});

server.listen(8080, () => {
console.log('Server started.');
});
```

Yukarıdaki kodu çalıştırdıktan sonra, WebSocket sunucusu 8080 bağlantı noktası üzerinden dinlemeye başlayacaktır. Bir istemci sunucuya bağlandığında, bağlantı olayı tetiklenir ve \"Client connected.\" mesajı yazdırılır. İstemci sunucuya mesaj gönderdiğinde, \"Received message:\" mesajı ve mesaj verileri yazdırılır. Sunucu, istemciye yanıt olarak \"Server response.\" mesajını gönderir. İstemci bağlantısını sonlandırdığında, \"Client disconnected.\" mesajı yazdırılır.

Sık Sorulan Sorular

1. Stream verilerini nasıl manipüle edebilirim?
- Stream verilerini manipüle etmek için, 'data', 'end' ve 'error' olaylarını kullanabilirsiniz. Örneğin, Readable Stream'den gelen verileri değiştirebilir veya Writable Stream'e yazmadan önce verileri işleyebilirsiniz.

2. Stream neden önemlidir?
- Stream, bellek kullanımını minimuma indirir ve uygulamalarınızın daha hızlı ve verimli çalışmasını sağlar. Ayrıca, Stream verilerini parçalara ayırarak işleyebilirsiniz. Bu, büyük dosyalarda veya yüksek trafikli ağlarda önemli bir avantajdır.

3. TCP, UDP, HTTP ve WebSocket protokollerini Stream kullanarak nasıl yönetebilirim?
- Bu protokollerin her biri için, Node.js Stream API'si kullanarak Readable, Writable veya Duplex Stream'leri oluşturabilirsiniz. Örneğin, TCP sunucusu ve istemcisi örneğinde, net modülü kullanılarak Duplex Stream oluşturuldu.

4. Node.js Stream API'si hakkında daha fazla bilgi nerede bulabilirim?
- Node.js Stream API'si hakkında daha fazla bilgi için, Node.js resmi web sitesindeki belgelere bakabilirsiniz. Ayrıca, Node.js Stream API'si üzerine birçok açık kaynaklı modül de mevcuttur."


Dijital Kartvizit Web Sites

Gelişmiş Bir Çok Özelliği İle Dijital Kartvizit Web Sitenizi Bu Gün Kuralım!

*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle


Nodejs ağ programlama akışlar veri gönderme veri alma ses yönetimi veri yönetimi sunucu oluşturma soket programlama
Sonsuz Bilgi