Bagikan melalui


Windows Sockets: Stream Sockets

Artikel ini menjelaskan soket aliran, salah satu dari dua jenis Windows Socket yang tersedia. (Jenis lainnya adalah soket datagram.)

Soket streaming menyediakan aliran data tanpa batas rekaman: aliran byte yang dapat dua arah (aplikasinya adalah dupleks penuh: dapat mengirimkan dan menerima melalui soket). Aliran dapat diandalkan untuk mengirimkan data yang berurutan dan tidak diduplikasi. ("Berurutan" berarti bahwa paket dikirimkan dalam urutan yang dikirim. "Tidak Berduplikasi" berarti Anda hanya menerima paket tertentu satu kali.) Penerimaan pesan dalam stream dijamin, dan stream sangat cocok untuk menangani data dalam jumlah besar.

Lapisan transportasi jaringan dapat memecah atau mengelompokkan data menjadi paket dengan ukuran yang wajar. Kelas CSocket akan menangani pengepakan dan membongkah kemasan untuk Anda.

Aliran didasarkan pada koneksi eksplisit: soket A meminta koneksi ke soket B; soket B menerima atau menolak permintaan koneksi.

Panggilan telepon menyediakan analogi yang baik untuk aliran. Dalam keadaan normal, pihak penerima mendengar apa yang Anda katakan dalam urutan yang Anda katakan, tanpa duplikasi atau kehilangan. Soket streaming sesuai, misalnya, untuk implementasi seperti Protokol Transfer File (FTP), yang memfasilitasi transfer ASCII atau file biner dengan ukuran arbitrer.

Soket aliran lebih disukai daripada soket datagram ketika data harus dijamin tiba dan ketika ukuran data besar. Untuk informasi selengkapnya tentang soket streaming, lihat spesifikasi Soket Windows. Spesifikasi tersedia di Windows SDK.

Menggunakan soket stream dapat lebih unggul dibandingkan dengan aplikasi yang dirancang untuk menggunakan soket datagram untuk mengirimkan siaran ke semua soket penerima di jaringan karena

  • Model siaran tunduk pada masalah banjir jaringan (atau "badai").

  • Model server klien yang diadopsi kemudian lebih efisien.

  • Model aliran menyediakan transfer data yang andal, di mana model datagram tidak.

  • Model akhir memanfaatkan kemampuan komunikasi antara aplikasi soket Unicode dan ANSI yang dihadirkan oleh kelas CArchive kepada kelas CSocket.

    Nota

    Jika Anda menggunakan kelas CSocket, Anda harus menggunakan aliran. Pernyataan MFC gagal jika Anda menentukan jenis soket sebagai SOCK_DGRAM.

Lihat juga

Windows Sockets pada MFC
Windows Sockets: Latar Belakang