Sertakan File

File include asli untuk digunakan dengan Windows Sockets 1.1 adalah file header Winsock.h. Untuk memudahkan porting kode sumber yang ada berdasarkan soket Berkeley UNIX ke soket Windows, kit pengembangan Windows Sockets untuk Winsock 1.1 didorong untuk disediakan dengan beberapa file termasuk dengan nama yang sama dengan UNIX standar termasuk file (file sys/socket.h dan file header arpa/inet.h, misalnya). Namun, file header Winsock nama serupa ini hanya berisi direktif untuk menyertakan file header Winsock2.h.

Ketika Windows Sockets 2 dirilis, file utama include untuk digunakan dengan Windows Sockets diganti namanya menjadi Winsock2.h. File header winsock.h asli yang lebih lama untuk Winsock 1.1 juga dipertahankan untuk kompatibilitas dengan aplikasi yang lebih lama. Pengembangan aplikasi yang kompatibel dengan Winsock 1.1 tidak digunakan lagi sejak Windows 2000 dirilis. Semua aplikasi sekarang harus menggunakan direktif Winsock2.h dalam file sumber aplikasi Winsock.

File header Winsock2.h berisi sebagian besar fungsi, struktur, dan definisi Winsock. File header Ws2tcpip.h berisi definisi yang diperkenalkan dalam dokumen WinSock 2 Protocol-Specific Annex untuk TCP/IP yang mencakup fungsi dan struktur yang lebih baru yang digunakan untuk mengambil alamat IP. Ini termasuk getaddrinfo dan getnameinfo keluarga fungsi yang memberikan resolusi nama untuk alamat IPv4 atau IPv6. File header Ws2tcpip.h hanya diperlukan jika fungsi penamaan IP-agnostik ini diperlukan oleh aplikasi.

File header Mswsock.h berisi definisi untuk ekstensi khusus Microsoft ke Windows Sockets 2 (TransmitFile, AcceptEx, dan ConnectEx, misalnya). File header Mswsock.h biasanya tidak diperlukan kecuali ekstensi khusus Microsoft ini digunakan oleh aplikasi.

File header Winsock2.h secara internal menyertakan elemen inti dari file header Windows.h, sehingga biasanya tidak ada baris #include untuk file header Windows.h di aplikasi Winsock. Jika baris #include diperlukan untuk file header Windows.h, ini harus didahului dengan makro #define WIN32_LEAN_AND_MEAN. Untuk alasan historis, header Windows.h default untuk menyertakan file header Winsock.h untuk Windows Sockets 1.1. Deklarasi dalam file header winsock.h akan bertentangan dengan deklarasi dalam file header Winsock2.h yang diperlukan oleh Windows Sockets 2. Makro WIN32_LEAN_AND_MEAN mencegah Winsock.h disertakan oleh header Windows.h. Contoh yang mengilustrasikan ini ditunjukkan di bawah ini.

#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

int main() {
  return 0;
}

Membuat Aplikasi Winsock Dasar

Memulai Winsock

Porting Socket Applications ke Winsock

Pertimbangan Pemrograman Winsock