c

send (C)

#include <sys/socket.h>
 
ssize_t send(
	size_t size;
	int sockfd,
	const void buf[size],
	size_t size,
	int flags
);

send vs. write

See: write

Examples

Example: HTTP Client

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <netdb.h>
 
int main(int argc, char *argv[]) {
    if (argc < 2) return 1;
 
    // 1. resolve host (ipv4 & ipv6)
    struct addrinfo hints = {0}, *res;
    hints.ai_family = AF_UNSPEC;     // Allow IPv4 or IPv6
    hints.ai_socktype = SOCK_STREAM; // TCP
 
    if (getaddrinfo(argv[1], "80", &hints, &res) != 0) return 2;
 
    // 2. create socket & connect
    int s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
    if (s < 0 || connect(s, res->ai_addr, res->ai_addrlen) < 0) {
        freeaddrinfo(res);
        return 3;
    }
    freeaddrinfo(res); // Clean up memory
 
    // 3. send http request
    char req[1024];
    snprintf(req, sizeof(req), "GET / HTTP/1.0\r\nHost: %s\r\n\r\n", argv[1]);
    send(s, req, strlen(req), 0);
	
	// ...
}