MSDN – Windows Networking

TCP/IP Programming Overview

The Windows TCP/IP stack provides a rich set of APIs for building robust networked applications. This guide covers the essential concepts, programming models, and best practices for developing with sockets, Winsock, and newer network APIs.

Winsock
WS2_32 & WS2tcpip
Named Pipes (Local)

Winsock Overview

Winsock (Windows Sockets) is the primary API for network communication on Windows. It implements the Berkeley sockets API with extensions for asynchronous operations.

#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")

int main() {
    WSADATA wsa;
    WSAStartup(MAKEWORD(2,2), &wsa);
    // ... socket code ...
    WSACleanup();
    return 0;
}

WS2_32 & WS2tcpip Functions

The ws2tcpip.h header adds IPv6 support, advanced address resolution, and socket options.

// Resolve a server address (IPv4/IPv6)
struct addrinfo hints = {0}, *result;
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
getaddrinfo("example.com", "80", &hints, &result);
// ... connect using result ...
freeaddrinfo(result);

Named Pipes for Local IPC

For high-performance communication between processes on the same machine, consider using named pipes.

// Server side
HANDLE hPipe = CreateNamedPipe(
    L"\\\\.\\pipe\\MyPipe",
    PIPE_ACCESS_DUPLEX,
    PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT,
    1, 4096, 4096, 0, NULL);
ConnectNamedPipe(hPipe, NULL);
// ...

Key Concepts

Further Reading

Explore the detailed topics in the left navigation pane or visit the official MSDN Winsock documentation for comprehensive guidance.