Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Bagian ini adalah panduan langkah demi langkah untuk memulai pemrograman Windows Sockets. Ini dirancang untuk memberikan pemahaman tentang fungsi dan struktur data Winsock dasar, dan bagaimana mereka bekerja sama.
Aplikasi klien dan server yang kami gunakan dalam topik ini untuk ilustrasi adalah klien dan server yang sangat mendasar. Contoh kode yang lebih canggih disertakan dalam sampel yang disertakan dengan Microsoft Windows Software Development Kit (SDK).
Beberapa langkah pertama sama untuk aplikasi klien dan server.
Artikel berikut menjelaskan langkah-langkah yang tersisa untuk membuat aplikasi klien Winsock.
- Membuat soket untuk klien
- Menyambungkan ke soket
- Mengirim dan menerima data di klien
- Memutuskan sambungan klien
Artikel berikut ini menjelaskan langkah-langkah yang tersisa untuk membuat aplikasi server Winsock.
- Membuat soket untuk server
- Mengikat soket
- Mendengarkan pada soket
- Menerima koneksi
- Menerima dan mengirim data di server
- Memutuskan sambungan server
Kode sumber lengkap untuk contoh dasar ini.
- Menjalankan sampel kode server dan klien Winsock
- Kode Klien Winsock Lengkap
- Kode Server Winsock Lengkap
Sampel Aplikasi Winsock Tingkat Lanjut
Beberapa aplikasi sampel server dan klien Winsock yang lebih canggih tersedia di GitHub. Mereka tercantum di sini dalam urutan dari performa yang lebih tinggi ke yang lebih rendah, dan ditemukan di direktori berikut:
iocp
Folder tersebut berisi tiga program sampel yang menggunakan port penyelesaian I/O. Program ini meliputi: server Winsock,
iocpserver
, yang menggunakan fungsiWSAAccept; server Winsock,iocpserverex
, yang menggunakan fungsiAcceptEx; dan klien Winsock multithreaded sederhana,iocpclient
, digunakan untuk menguji salah satu server ini.Program server mendukung beberapa klien yang terhubung dengan menggunakan TCP/IP, dan mengirim buffer data berukuran sembarang yang kemudian dikembalikan ke klien. Untuk kemudahan, program klien sederhana,
iocpclient
, dikembangkan untuk menyambungkan dan secara terus-menerus mengirimkan data ke server guna menguji beban menggunakan banyak thread. Server Winsock yang menggunakan port penyelesaian I/O memberikan performa tertinggi.Tumpang tindih
Folder ini berisi program server sampel yang menggunakan I/O yang tumpang tindih. Program sampel menggunakan fungsiAcceptEx dan I/O yang tumpang tindih untuk menangani beberapa permintaan koneksi asinkron secara efektif dari klien. Server menggunakan fungsi AcceptEx ke multipleks koneksi klien yang berbeda dalam aplikasi Win32 berulir tunggal. Menggunakan I/O yang tumpang tindih memungkinkan skalabilitas yang lebih besar.
WSAPoll
Folder ini berisi program sampel dasar yang menunjukkan penggunaan fungsiWSAPoll. Klien gabungan dan program server tidak memblokir, dan menggunakan fungsi WSAPoll untuk menentukan kapan mungkin untuk mengirim atau menerima tanpa memblokir. Sampel ini untuk ilustrasi, dan bukan server berkinerja tinggi.
sederhana
Folder ini berisi tiga program sampel dasar yang menunjukkan penggunaan utas ganda oleh server. Program ini meliputi: server TCP/UDP sederhana,
simples
; server khusus TCP,simples_ioctl
, yang menggunakan fungsi pilih di aplikasi konsol Win32 untuk mendukung beberapa permintaan klien; dan program TCP/UDP klien,simplec
, untuk menguji server. Server menunjukkan penggunaan beberapa utas untuk menangani berbagai permintaan dari banyak klien. Metode tersebut memiliki masalah skalabilitas karena utas terpisah dibuat untuk setiap permintaan klien.terima
Folder ini berisi server sampel dasar dan program klien. Server menunjukkan penggunaan penerimaan non-pemblokiran menggunakan fungsi pilih, atau terima asinkron menggunakan fungsiWSAAsyncSelect. Sampel ini untuk ilustrasi, dan bukan server berkinerja tinggi.