C/Visual C - Sockets

 
Vista:

Sockets

Publicado por AntLyon (5 intervenciones) el 09/03/2001 16:20:20
Hola a todos, quisiera saber como se programa el socket para utilisar el protocolo udp, ya que lo necesito para enviar y recibir cadenas de caracteres, gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Programación de sockets UDP en C/C++ para enviar y recibir cadenas de caracteres

Publicado por Alejandro (913 intervenciones) el 09/09/2024 17:11:10
¡Hola, AntLyon!

Para programar sockets y utilizar el protocolo UDP en C/C++, puedes seguir los siguientes pasos:

1. Incluye las bibliotecas necesarias:
1
2
3
4
5
6
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

2. Crea un socket UDP:
1
2
3
4
5
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0) {
    perror("Error al crear el socket");
    exit(1);
}

3. Configura la dirección del servidor y el puerto:
1
2
3
4
5
struct sockaddr_in serverAddr;
memset(&serverAddr, 0, sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(puerto); // Reemplaza 'puerto' por el número de puerto deseado
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // Reemplaza la dirección IP por la del servidor

4. Envía datos al servidor:
1
2
3
4
5
6
7
char mensaje[100]; // Reemplaza '100' por el tamaño máximo del mensaje
strcpy(mensaje, "Hola, servidor!"); // Reemplaza el mensaje por el que desees enviar
int bytesEnviados = sendto(sockfd, mensaje, strlen(mensaje), 0, (struct sockaddr*)&serverAddr, sizeof(serverAddr));
if (bytesEnviados < 0) {
    perror("Error al enviar datos");
    exit(1);
}

5. Recibe datos del servidor:
1
2
3
4
5
6
7
8
char buffer[100]; // Reemplaza '100' por el tamaño máximo del mensaje
memset(buffer, 0, sizeof(buffer));
int bytesRecibidos = recvfrom(sockfd, buffer, sizeof(buffer)-1, 0, NULL, NULL);
if (bytesRecibidos < 0) {
    perror("Error al recibir datos");
    exit(1);
}
printf("Mensaje recibido: %s\n", buffer);

Recuerda que debes reemplazar la dirección IP y el número de puerto con los valores correspondientes a tu servidor. Además, asegúrate de manejar los errores adecuadamente en tu código.

Espero que esta información te sea útil para programar sockets y utilizar el protocolo UDP en C/C++. ¡Buena suerte con tu desarrollo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar