Ejemplo n.º 1
0
int	server_init(t_server *srv)
{
  if (!(srv->pe = getprotobyname("TCP")))
    return (printf("Err: getproto\n"));
  if ((srv->fd = socket(AF_INET, SOCK_STREAM, srv->pe->p_proto)) == -1)
    return (printf("Err: socket\n"));
  srv->log = 0;
  srv->sin.sin_family = AF_INET;
  srv->sin.sin_port = htons(srv->port);
  srv->sin.sin_addr.s_addr = INADDR_ANY;
  if (bind(srv->fd, (struct sockaddr *)&srv->sin, sizeof(srv->sin)) == -1)
    {
      close(srv->fd);
      return (err_msg("Err: bind\n"));
    }
  if (listen(srv->fd, 42) == -1)
    {
      close(srv->fd);
      return (err_msg("Err: listen\n"));
    }
  if (assign_func(srv) == -1)
    return (-1);
  if (assign_func_name(srv) == -1)
    return (-1);
  if (init_response(srv) == -1)
    return (-1);
  return (0);
}
Ejemplo n.º 2
0
int		main()
{
  t_client	client;

  init_param(&client);
  to_serv(&client);
  assign_func(&client);
  while (client.s < 0)
    init_connection(&client);
  while (client.s)
    {
      set_fd(&client);
      if (select(client.fd_max, &(client.fd_read), &(client.fd_write),
		 NULL, NULL) == -1)
	{
	  my_printf(2, "select: %s\n", strerror(errno));
	  break;
	}
      check_fd(&client);
    }
  if (client.s)
    my_close(client.s);
  return (0);
}