Tiene que asignar un búfer para un socket.
Por lo general, el búfer es solo una matriz estática creada por el usuario y asignada en la memoria de la pila. Considere el siguiente código C para los sockets de Berkeley: Wikipedia, el buffer es una matriz de caracteres con tamaño 1024. El programa usa el buffer para leer los datos recibidos del socket:
calcetín int;
buffer de char [1024];
- ¿Caducan los códigos de autenticación de dos factores?
- ¿Cuál es el mejor protocolo para usar para la implementación de IOT: MQTT, CoAP, XMPP, SOAP, UPnP?
- ¿Por qué la oficina administrativa de Fyers utiliza un protocolo HTTP sin cifrar para el inicio de sesión del usuario?
- ¿Qué es un protocolo de dirección IP?
- ¿Cómo se codifican los protocolos de red?
// Creación y enlace de sockets aquí
…
para (;;) {
recsize = recvfrom (sock, (void *) buffer, sizeof buffer, 0, (struct sockaddr *) & sa, & fromlen);
if (recsize <0) {
fprintf (stderr, “% s \ n”, strerror (errno));
salir (EXIT_FAILURE);
}
printf (“recsize:% d \ n”, (int) recsize);
dormir (1);
printf (“datos recibidos:%. * s \ n”, (int) recsize, buffer);
}
En lenguajes de nivel superior, su API de socket puede ocultar el proceso de creación del búfer por conveniencia para que no tenga que asignar un búfer, pero el concepto subyacente se mantiene intacto.