C/Visual C - Sockes

 
Vista:

Sockes

Publicado por REHome (2 intervenciones) el 06/07/2003 17:37:56
Hola:

A ver si alguien se entera sobre sockes con borland C++ 6 builder, En un form coloco un TButton y un TMemo, con el botón es para activar y desactivar la comprovación de nuevo sofware que tengo en la Web y el TMemo es para que me diga en un mensage si está o no el nuevo software.

Espero que alguien me diga por pasos cómo hacerlo y todos sus códigos.
hasta otra.

http://residentevilhome.iespana.es
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

Implementación de un cliente de socket en Borland C++ Builder 6

Publicado por Alejandro (1286 intervenciones) el 07/07/2025 22:34:01
Para crear una aplicación en Borland C++ Builder 6 que verifique la disponibilidad de nuevo software en un servidor web utilizando sockets, puedes seguir estos pasos. En este ejemplo, utilizaremos un `TButton` para iniciar la verificación y un `TMemo` para mostrar el resultado.

Paso 1: Configuración del formulario



1. Crea un nuevo proyecto en Borland C++ Builder 6.
2. Agrega un `TButton` al formulario y cambia su propiedad `Caption` a "Verificar actualización".
3. Agrega un `TMemo` al formulario y ajusta su tamaño para que sea visible. Este será el área donde se mostrarán los mensajes.

Paso 2: Agregar las unidades necesarias



Asegúrate de incluir las unidades necesarias para trabajar con sockets. En la sección de `uses` de tu archivo de implementación, agrega:

1
2
#include <vcl.h>
#include <winsock.h>

Paso 3: Código para la verificación del software



A continuación, se muestra un ejemplo de cómo implementar la funcionalidad de verificación de software:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // Inicializa Winsock
    WSADATA wsaData;
    if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
        Memo1->Lines->Add("Error al inicializar Winsock.");
        return;
    }
 
    // Crea un socket
    SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (sock == INVALID_SOCKET) {
        Memo1->Lines->Add("Error al crear el socket.");
        WSACleanup();
        return;
    }
 
    // Configura la dirección del servidor
    struct sockaddr_in server;
    server.sin_family = AF_INET;
    server.sin_port = htons(80); // Puerto HTTP
    server.sin_addr.s_addr = inet_addr("IP_DEL_SERVIDOR"); // Cambia por la IP del servidor
 
    // Conéctate al servidor
    if (connect(sock, (struct sockaddr*)&server, sizeof(server)) == SOCKET_ERROR) {
        Memo1->Lines->Add("Error al conectar al servidor.");
        closesocket(sock);
        WSACleanup();
        return;
    }
 
    // Envía una solicitud HTTP
    const char *request = "GET /ruta_del_archivo_de_actualizacion HTTP/1.1\r\n"
                          "Host: IP_DEL_SERVIDOR\r\n"
                          "Connection: close\r\n\r\n";
    send(sock, request, strlen(request), 0);
 
    // Recibe la respuesta
    char buffer[1024];
    int bytesReceived = recv(sock, buffer, sizeof(buffer) - 1, 0);
    if (bytesReceived > 0) {
        buffer[bytesReceived] = '\0'; // Asegúrate de que el buffer esté terminado en null
        Memo1->Lines->Add("Respuesta del servidor:");
        Memo1->Lines->Add(buffer);
    } else {
        Memo1->Lines->Add("No se recibió respuesta del servidor.");
    }
 
    // Cierra el socket y limpia Winsock
    closesocket(sock);
    WSACleanup();
}

Paso 4: Configuración del servidor



- Asegúrate de reemplazar `"IP_DEL_SERVIDOR"` y `"/ruta_del_archivo_de_actualizacion"` con la dirección IP de tu servidor y la ruta del archivo que deseas verificar.
- Este código envía una solicitud HTTP GET al servidor y muestra la respuesta en el `TMemo`.

Paso 5: Compilación y ejecución



1. Compila el proyecto y asegúrate de que no haya errores.
2. Ejecuta la aplicación y haz clic en el botón para verificar si hay actualizaciones.

Notas adicionales



- Este ejemplo básico utiliza sockets para conectarse a un servidor web y verificar la disponibilidad de un archivo. Puedes expandirlo para manejar diferentes tipos de respuestas y errores según sea necesario.
- Asegúrate de tener permisos adecuados para acceder al servidor y que el servidor esté configurado para responder a las solicitudes.

Con estos pasos, deberías poder implementar la funcionalidad que necesitas en tu aplicación de Borland C++ Builder 6. ¡Buena suerte, REHome!
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