Foros del Web » Creando para Internet » Flash y Actionscript »

sockets

Estas en el tema de sockets en el foro de Flash y Actionscript en Foros del Web. hola estoy haciendo un pequeño programa para conectar flash y c++ para luego poder hacer algo mas complejo, todo funciona correctamente, pero no se cmo ...
  #1 (permalink)  
Antiguo 16/01/2008, 06:18
 
Fecha de Ingreso: marzo-2004
Ubicación: España
Mensajes: 184
Antigüedad: 13 años, 8 meses
Puntos: 19
sockets

hola estoy haciendo un pequeño programa para conectar flash y c++ para luego poder hacer algo mas complejo, todo funciona correctamente, pero no se cmo hacer que todo el rato este conetstando, es decir cuanod me conecto me dice hola, le envio un mensaje desde el cliente y loe scribe en el servidor pero no se como hacer un bucle que cada vez que le envio me conteste! por cierto esto serviria para dos usuarios conectados al vez o el codigo que tnego solo sirve para uno?

Código:
#include <stdio.h>
#include <windows.h>

char SendBuff[512],RecvBuff[512];

int main(int argc, char *argv[]){

  WSADATA wsaData;
  SOCKET conn_socket,comm_socket;
  SOCKET comunicacion;
  struct sockaddr_in server;
  struct sockaddr_in client;
  struct hostent *hp;
  int resp,stsize;
  
  //Inicializamos la DLL de sockets
  resp=WSAStartup(MAKEWORD(1,0),&wsaData);
  if(resp){
    printf("Error al inicializar socket\n");
    getchar();return resp;
  }
  
  //Obtenemos la IP que usará nuestro servidor... 
  // en este caso localhost indica nuestra propia máquina...
  hp=(struct hostent *)gethostbyname("localhost");

  if(!hp){
    printf("No se ha encontrado servidor...\n");
    getchar();WSACleanup();return WSAGetLastError();
  }

  // Creamos el socket...
  conn_socket=socket(AF_INET,SOCK_STREAM, 0);
  if(conn_socket==INVALID_SOCKET) {
    printf("Error al crear socket\n");
    getchar();WSACleanup();return WSAGetLastError();
  }
  
  memset(&server, 0, sizeof(server)) ;
  memcpy(&server.sin_addr, hp->h_addr, hp->h_length);
  server.sin_family = hp->h_addrtype;
  server.sin_port = htons(6000);

  // Asociamos ip y puerto al socket
  resp=bind(conn_socket, (struct sockaddr *)&server, sizeof(server));
  if(resp==SOCKET_ERROR){
    printf("Error al asociar puerto e ip al socket\n");
    closesocket(conn_socket);WSACleanup();
    getchar();return WSAGetLastError();
  }

  if(listen(conn_socket, 1)==SOCKET_ERROR){
    printf("Error al habilitar conexiones entrantes\n");
    closesocket(conn_socket);WSACleanup();
    getchar();return WSAGetLastError();
  }
              
  // Aceptamos conexiones entrantes
  printf("Esperando conexiones entrantes... \n");
  stsize=sizeof(struct sockaddr);
  comm_socket=accept(conn_socket,(struct sockaddr *)&client,&stsize);
  if(comm_socket==INVALID_SOCKET){
    printf("Error al aceptar conexión entrante\n");
    closesocket(conn_socket);WSACleanup();
    getchar();return WSAGetLastError();
  }
  printf("Conexión entrante desde: %s\n", inet_ntoa(client.sin_addr));
              
  // Como no vamos a aceptar más conexiones cerramos el socket escucha
 // closesocket(conn_socket);
              
  strcpy(SendBuff,"Hola Cliente... .P");
  //Enviamos y recibimos datos...
  printf("Enviando Mensaje... \n");
  send (comm_socket, SendBuff, sizeof(SendBuff), 0);
  printf("Datos enviados: %s \n", SendBuff);
  
  printf("Recibiendo Mensaje... \n");
  recv (comm_socket, RecvBuff, sizeof(RecvBuff), 0);
  printf("Datos recibidos: %s \n", RecvBuff);
  
  getchar();            

  // Cerramos el socket de la comunicacion
  closesocket(comm_socket);
  
  // Cerramos liberia winsock
  WSACleanup();
  return (EXIT_SUCCESS);
}
__________________
Tuning Juegos Flash Animales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:21.