[ Foro de C ]
AYUDA gente quiero hacer un socket pero nose como hacerlo
hola
si puedes hacer una pregunta mas concreta, el no se hacerlo es muy general, que sabes y que no sabes, que parte tienes hecha y que dudas tienes
Hola. Aqui te dejo un ejemplo
// implementacion de sockets para programa servidor
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main()
{
struct sockaddr_in server_address;
int server_socket, client_socket;
char server_message[32] = "Has conectado con el servidor!";
// crear el socket servidor
server_socket = socket(AF_INET, SOCK_STREAM, 0);
//definir la dirección del server
server_address.sin_family = AF_INET;
server_address.sin_port = htons(1863);
server_address.sin_addr.s_addr = INADDR_ANY;
// enlazar el socket con nuestra ip y puerto determinado
bind(server_socket, (struct sockaddr *) &server_address, sizeof(server_address));
listen(server_socket, 2);
client_socket = accept(server_socket, NULL, NULL);
send(client_socket, server_message, sizeof(server_message), 0);
close(server_socket);
return 0;
}
// implementacion de sockets para programa cliente
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main()
{
struct sockaddr_in server_address;
int client_socket, conn_status;
char server_message[256];
// especifica una direccion para el socket
server_address.sin_family = AF_INET;
server_address.sin_port = htons(1863);
server_address.sin_addr.s_addr = INADDR_ANY;
client_socket = socket(AF_INET, SOCK_STREAM, 0);
conn_status = connect(client_socket, (struct sockaddr *) &server_address, sizeof(server_address));
if(conn_status < 0){
printf("Error al establecer la conexión\n");
return 1;
close(client_socket);
}
// recibe datos del server
recv(client_socket, &server_message, sizeof(server_message), 0);
printf("El servidor responde: %s\n", server_message);
close(client_socket);
return 0;
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)