Esempio n. 1
0
File: server.c Progetto: Vuzi/SFSS
static SOCKET startConnection(void)
{
    HERROR_WRITE(HERROR_INFO, "[Lanc. serveur] Initialisation du serveur...");

    /* Initialisation Windows */
    initW32();

    /* Socket */
    SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
    SOCKADDR_IN sin;

    if(sock == INVALID_SOCKET)
        sock_error("socket()");

    sin.sin_addr.s_addr = htonl(INADDR_ANY); /* Adresse */
    sin.sin_port = htons(PORT); /* Port */
    sin.sin_family = AF_INET; /* Protocole : TCP */

    /* On lie le socket */
    if(bind(sock, (SOCKADDR *)&sin, sizeof(sin)) == SOCKET_ERROR)
        sock_error("bind()");

    HERROR_WRITE(-1, "terminee");

    /* On passe en mode écoute */
    if(listen(sock, MAX_CLIENTS) == SOCKET_ERROR)
        sock_error("listen()");

   HERROR_WRITE(HERROR_INFO, "[Lanc. serveur] Serveur en mode ecoute");

   return sock;
}
Esempio n. 2
0
int main()
{
    initW32(); // Necesaria para compilar en Windows
    int fd, fd2; // los descriptores de archivos

    struct sockaddr_in server; // para la información de la dirección del servidor
    struct sockaddr_in client; // para la información de la dirección del cliente

    unsigned int sin_size;
    pid_t pid;

    if ((fd=socket(AF_INET, SOCK_STREAM, 0)) == -1 )
        {
            printf("error en socket()\n");
            exit(-1);
        }

    server.sin_family = AF_INET;
    server.sin_port = htons(PORT);
    server.sin_addr.s_addr = INADDR_ANY; // INADDR_ANY coloca nuestra dirección IP automáticamente */

   //bzero(&(server.sin_zero),8);
   memset(&(server.sin_zero), '0', 8);// escribimos ceros en el resto de la estructura


   if(bind(fd,(struct sockaddr*)&server, sizeof(struct sockaddr))==-1) // A continuación la llamada a bind()
    {
      printf("error en bind() \n");
      exit(-1);
    }

   if(listen(fd,BACKLOG) == -1)
    {  // llamada a listen()
      printf("error en listen()\n");
      exit(-1);
    }

   while(1)
    {
      sin_size=sizeof(struct sockaddr_in);
      if ((fd2 = accept(fd,(struct sockaddr *)&client, &sin_size))==-1)// A continuación la llamada a accept()
        {
         printf("error en accept()\n");
         exit(-1);
        }

      printf("Connecting with Java: %s\n", inet_ntoa(client.sin_addr) );// que mostrará la IP del cliente
      send(fd2,"Server_N",99,0);//Muestra que enviará el mensaje de bienvenida al cliente
      doprocessing(fd2);

   }
}
Esempio n. 3
0
int main() {

  initW32(); /* Necesaria para compilar en Windows */
  int fd, fd2; /* los descriptores de archivos */
  struct sockaddr_in server; /* para la información de la dirección del servidor */
  struct sockaddr_in client;/* para la información de la dirección del cliente */

  unsigned int sin_size;

  pid_t pid;

  /* A continuación la llamada a socket() */
  if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
    printf("error en socket()\n");
    exit(-1);
  }

  server.sin_family = AF_INET;
  server.sin_port = htons(PORT);
  server.sin_addr.s_addr = INADDR_ANY;/* INADDR_ANY coloca nuestra dirección IP automáticamente */
  //bzero(&(server.sin_zero),8);

  memset(&(server.sin_zero), '0', 8); /* escribimos ceros en el reto de la estructura */

  /* A continuación la llamada a bind() */
  if (bind(fd, (struct sockaddr*) &server, sizeof(struct sockaddr)) == -1) {
    printf("error en bind() \n");
    exit(-1);
  }

  if (listen(fd, BACKLOG) == -1) { /* llamada a listen() */
    printf("error en listen()\n");
    exit(-1);
  }

  while (1){
    sin_size = sizeof(struct sockaddr_in);
    /* A continuación la llamada a accept() */
    if ((fd2 = accept(fd, (struct sockaddr *) &client, &sin_size)) == -1) {
      printf("error en accept()\n");
      exit(-1);
    }

    printf("Se obtuvo una conexion desde %s\n", inet_ntoa(client.sin_addr));
    /* que mostrará la IP del cliente */
    //send(fd2,"Bienvenido a mi servidor Lain.\n",99,0);
    /* que enviará el mensaje de bienvenida al cliente */
    doprocessing(fd2);

  } /* end while */
}