Ir ao conteúdo
  • Cadastre-se

arfneto

Membro Pleno
  • Posts

    6.232
  • Cadastrado em

  • Última visita

Tudo que arfneto postou

  1. @Swalls Muito do que tem em /proc não se refere de fato a arquivos. São abstrações partindo da filosofia do Unix de que tudo é arquivo. Então mesmo que você possa editar não há como salvar de volta mesmo. Editar o /etc da vm pode não dar em nada pelo mesmo motivo. Veja lá no tutorial o que diz o autor. Qunado se trata de containers dentro de uma vm tudo tem que ser muito mais orquestrado para rodar Do próprio artigo que citou: Entenda /proc como um sistema de arquivos virtual de arquivos de saída. É o kernel se comunicando com o espaço de usuário.
  2. Com hardware moderno e comum não deve esperar nenhum problema e nem deve precisar instalar nenhum driver. Há mais de uma década isso raramente é preciso. Acontece quando tem algo muito novo e que pode não ter passado pelos canais normais de certificação de hardware para Windows, tipo aquele super novo NIC Mellanox ou a placa de Vídeo lançada... na semana passada Mas claro que trocar a placa-mãe vai invalidar a licença de Windows e vai ter que reativar. Nada mais.
  3. Isso não é uma opção. É um limite. Serve para quando precisa definir algo MENOR que a velocidade esperada em sua configuração. Se usa para desenvolvimento, testes de drivers ou algo assim. Não dá pra imaginar que se possa marcar de um lado da conexão a velocidade e o estado do duplex. Ou dá, porque vejo isso até recomendado às vezes. Mas seria como marcar na nota de 20 que ela vale 50 e sair pra rua tentando gastar. A conexão é negociada entre as duas pontas através do cabo ou do rádio. A cada conexão. Deixe tudo no automático.
  4. Não parece que precise de um switch. Se usar 2 roteadores comuns com 4 portas poderá usar 6 delas e já terá os AP embutidos... Use uma unica rede IP e configure o wifi como precisar. Tanto faz se as redes forem ocultas. Só é chato se forem porque tem que digitar o nome e não só a senha. Não use mais de uma rede IP ou vai ter muitos problemas com performance e conexão entre os dispositivos, ainda mais se quer usar algo de automação. Entenda que wifi e cabo são ethernet. Outro nível de rede. Não precisa e não deve separar a rede IP numa rede doméstica. Meu palpite grátis. Quanto ao switch, os switchs comuns (ethernet, nivel 2, os simples que custam menos de R$500) são simples comutadores, o significado de switch. Pode ligar de qualquer maneira, mas entenda que o tráfego para todas as portas dele vai vir de outro lugar, no seu caso por um cabo só... Eles são passivos e apenas aprendem os endereços de rede e usam uma tabela para comutação de pacotes. Use depois do roteador, ligado em alguma porta LAN. E pense em como ligar as coisas nele e no roteador considerando o tráfego que vai ter. Se vai usar muito o servidor NAS então deve ligar os computadores junto com ele do mesmo lado do switch ou do roteador. Mas acho que não precisa disso. Use apenas dois roteadores com wifi6 ou superior. Ligue um ao outro via porta LAN. Postei muitos roteiros e desenhos e argumentos sobre como fazer isso aqui nesse forum. Pode pesquisar direto aqui no conteúdo do forum pelo (meu) nome
  5. Use o botão code, como explicado no primeiro post do forum... Veja a diferença #include <conio.h> #include <stdlib.h> #include <stdio.h> #include <cstring> #include <string> static char lista[5][50]; static char nome[5]; static char aux[50]; void menu() { system("cls"); printf("******************************\n"); printf("* *\n"); printf("* MENU PRINCIPAL *\n"); printf("* *\n"); printf("* 1 - CADASTRAR *\n"); printf("* 2 - CONSULTAR *\n"); printf("* 3 - ALTERAR *\n"); printf("* 4 - ORDENAR CRESCENTE *\n"); printf("* 5 - ORDENAR DECRESCENTE *\n"); printf("* 6 - EXCLUIR *\n"); printf("* 7 - IMPRIMIR *\n"); printf("* 8 - SAIR *\n"); printf("* *\n"); printf("******************************\n"); printf(""); printf("DIGITE A OPCAO: "); } void cadastrar() { system("cls"); for (int i = 0; i < 5; i++) { printf("Digite o nome %d:", i + 1); scanf("%s", &lista[i]); } } void consultar() { bool enc = false; printf("voce escolheu a opcao 2\n"); int i = 0; system("cls"); printf("Digite o nome:\n"); scanf("%s", &nome); while (enc == false && i < 5) { if ((strcmp(nome, lista[i])) == 0) { enc = true; } i++; } if (enc == true) { printf("Nome consta na lista\n"); } else { printf("Nome não consta na lista\n"); } } void ordcres() { for (int i = 4; i > 0; i--) { for (int y = i - 1; y > 0; y--) { if (strcmp(lista[i], lista[y]) < 0) { strcpy(aux, lista[i]); strcpy(lista[i], lista[y]); strcpy(lista[y], aux); } } } printf("Lista Organizada com SUCESSO!.\n"); system("pause"); } void orddes() { for (int i = 0; i < 4; i++) { for (int y = i + 1; y < 5; y++) { if (strcmp(lista[i], lista[y]) < 0) { strcpy(aux, lista[i]); strcpy(lista[i], lista[y]); strcpy(lista[y], aux); } } } printf("Lista Organizada com SUCESSO!.\n"); system("pause"); } void imprimir() { int n = 0; printf("voce escolheu a opcao 7\n"); for (int m = 0; m < 5; m++) { printf("%s\n", lista[n]); n++; } } void excluir() { bool enc = false; char nomeExcluir[50]; int i = 0; system("cls"); printf("digite o nome: "); scanf("%s", &nomeExcluir); while (enc == false && i < 5) { if (strcmp(nomeExcluir, lista[i]) == 0) { enc = true; } else { i++; } } for (int z = i; z < 4; z++) { strcpy(lista[z], lista[z + 1]); } lista[4][0] = '\0'; } void alterar() { int indice; char nomeNovo[50]; char alterarNome[50]; bool encontrado = false; printf("Digite o nome que voce deseja alterar:"); scanf("%s", &alterarNome); for (int i = 0; i < 5; i++) { if (strcmp(alterarNome, lista[i]) == 0) { printf("Digite o novo nome:"); scanf("%s", nomeNovo); strcpy(lista[i], nomeNovo); encontrado = true; printf("Nome alterado com sucesso!\n"); break; } } if (!encontrado) { printf("Este nome não foi encontrado na lista!\n"); } } int main() { int op; do { menu(); scanf("%d", &op); system("cls"); switch (op) { case 1: cadastrar(); break; case 2: consultar(); break; case 3: alterar(); break; case 4: ordcres(); break; case 5: orddes(); break; case 6: excluir(); break; case 7: imprimir(); break; default: printf("opcao invalida!\n"); break; } if (op != 8) system("pause\n"); } while (op != 8); system("cls"); printf("sistema finalizado com sucesso!\n"); } Sobre o erro: Que compilador está usando? Que sistema? Que opções? Instalou as extensões para C/C++? Leu essa mensagem? Porque está usando isso em inglês? Rodou a configuração de IntelliSense como diz aí? Sobre o código: O programa tem muitos problemas e vai ter um trabalho do inferno para terminar assim. Se alguém de fato ensina a escrever desse jeito sugiro muito um livro ou apostila e outros instrutores. De uma lista que tenho dos problemas comuns: Não use system() para nada. Não estará fazendo nada. Não estará aprendendo nada. Não há praticamente nada que possa fazer com system() que não possa fazer em C ou C++. system() foi escrita em C e o sistema quase todo também. E em geral é proibido em empresas e escolas afinal: é um risco grande de segurança. E se tem algo que você não possa inicialmente fazer em C ou C++ talvez não deva mesmo fazer. main() deve ser a primeira função de seu programa. Se possível em um arquivo separado. Há muitas razões para isso, mas em especial vai gostar de começar a ler seus programas e os de outros a partir de main() E a partir do início do texto. Ao mesmo tempo. E ao usar protótipos fica trivial passar as declarações todas para um arquivo .h que é o mais prático afinal. evite retornar void de funções: em geral é um desperdício. E muitas vezes um erro. Use argumentos nas funções, e retorne algo delas. É mais esperto e expressivo. Não há razão para incluir conio.h. Essa é uma biblioteca dos anos 80 e nada acrescenta a um programa moderno. Mesmo nos anos '80 ela era usada em geral apenas para ler letrinhas do teclado sem mostrar na tela, limpar a tela e escrever letrinhas com cores --- getch(), kdhit(), clrscr() e textcolor(). A mesma coisa que estava disponível em C no Windows e no Unix (depois Linux/MacOS/Android) em poucas linhas mas ninguém lia o manual imagino. Use alguma ordem em suas funções, como a ordem alfabética por exemplo. Vai gostar disso quando seu programa tiver 50 funções ao invés de umas poucas. Muitos IDE mostram uma lista das funções, em geral na ordem em que foram declaradas, de modo que você pode clicar no nome e o editor vai direto para o código, mas se estiverem em ordem é claro que você só ganha. Nunca use variáveis globais. Isso é um pesadelo e sempre vai cair na sua cabeça. Em geral é proibido em empresas e escolas. Não declare NADA que use memória fora de main(). Nunca leia valores do teclado para alimentar seu programa antes dele estar rodando. Só vai te atrasar e não acrescenta absolutamente nada. Use constantes, use funções que retornam a estrutura preenchida. Leia de arquivos: é trivial em C. Ao terminar os testes aí sim incorpore a leitura. Um programa interativo é chato para testar. Durante o desenvolvimento ninguém quer interagir com o programa. Nunca escreva um programa interativo, mesmo que seja o objetivo final. Alinhe seu código com algum critério. Evite longas linhas com mais de 60 colunas. Use nomes significativos para as variáveis e fuja de coisas como aux, aux1 e aux2. E não use nomes de variáveis enormes porque em uma expressão fica muito difícil de ler. Se seu programa tem um menu, entenda que o menu() deve mostrar as opções e ler e retornar a opção. Um void menu() é uma perda de tempo. scanf() foi escrita para ler entrada formatada. Não use para ler do teclado, que claramente não é entrada formatada. Só vai dar mais trabalho. Muito mais trabalho. Ao usar scanf() ou alguma função da família, como fscanf() entenda que ela retorna um valor. E teste. É ingênuo deixar o programa seguir sem testar. TESTE sempre. Exemplo: para 5 especificadores --- aquelas coisas com % na frente e que não tem um asterisco nem outro '%' --- como "%d %d %f %f %d" scanf() pode ler de 0 a 5 itens ou dar erro e retornar -1. Então teste o retorno que vai estar entre -1 e 5... Repito: nunca escreva um programa interativo. Não vai aprender nada. Não vai ganhar nada. Escreva e teste todas as funções. DEPOIS de tudo testado coloque a parte interativa. isso inclui claro o eventual menu. evite ler do teclado a menos que seja o objetivo do problema. Ler de arquivos é muito mais simples, seguro e fácil de reproduzir. Não há razão para ficar parado em frente a tela minutos inventando nomes de campos e coisas assim: o efeito é que vai acabar não testando direito porque é difícil controlar e repetir testes. Não misture entrada de dados ou formatação com a apresentação dos dados ou a lógica do programa, Isso é um desastre para manutenção e desenvolvimento Um printf() de 6 linhas é muito, mas muito melhor que 6 printf() de 1 linha. E se só vai mostrar o texto puts() é ainda melhor e dezenas de vezes mais rápido que uma série de printf(). Ao usar uma estrutura de dados como uma lista, uma pilha ou fila entenda que ela é um container e nada tem a ver com os dados. Não misture NUNCA os dados com a estrutura porque só via complicar tudo. Em especial vai ficar muito mais difícil aproveitar a estrutura em outros programas, e essa é toda a razão de escrever um programa. static char lista[5][50]; static char nome[5]; static char aux[50]; Pra que está usando variáveis estáticas globais em main em um programa que tem todo o código em um arquivo só? Está certo de que sabe o que é isso? Quando acabar main o programa acaba... Se é global e está aí vai existir para sempre
  6. Não entendi a pergunta. Está claro que somaxconn existe, definido com o mínimo de 128. E você não está tentando criar e sim alterar de 511 que está configurado para algum uso na VM para um valor maior ainda que os 128 originais... rodou o vi como root? pode ser só a questão de não ter privilégios...
  7. Para acessar a rede o dispositivo usa o nome da rede e a senha. Se o nome da rede é publicado pelo ponto de acesso é uma informação a menos de que o eventual invasor precisa, e assim é algo positivo nesse sentido de aumentar a segurança. Mesmo que não fizesse diferença positiva não vejo como seria mais vulnerável omitir broadcast do nome da rede. Muitas vezes vulnerabilidades são descobertas e exploradas por especialistas do lado do crime muito antes de alguém divulgar que existe tal vulnerabilidade e divulgar o fato. Outras vezes a comunidade de desenvolvedores na área de segurança descobre algo antes de ser explorado, ou supõe que não foi explorado ainda... Um crime perfeito é isso: ninguém sabe. Não sou um especialista, mas o que eu diria para considerar é que um invasor muitas vezes é só um vizinho oportunista que ouviu a senha de algum modo e quer acessar a internet porque teve alguma interrupção em sua rede. Esses caras não usaram algoritmos e computadores caros para ficar buscando a sua senha. Se usam um algoritmo pode ser algo lento achar a senha partindo do nada. Assim o cara pode ter uma máquina buscando ativamente senhas de dezenas de redes wifi ao alcance dele, e mantem isso rodando continuamente. Assim uma coisa bem positiva que pode fazer é mudar a senha constantemente usar uma senha relativamente longa ocultar o nome da rede Você obviamente tem acesso ao AP e pode sempre verificar as conexões, e bloquear qualquer dispositivo estranho. Faça isso de quando em quando mesmo nos AP domésticos, se não tem mais que uns poucos dispositivos, pode usar o recurso de white list e marcar os dispositivos que podem acessar a rede pode usar o recurso de black list e bloquear para sempre algum espertinho. E mudar a senha logo em seguida, claro. pode escrever ou comprar um programa para monitorar isso. É simples. os roteadores domésticos admitem em geram umas 20 entradas em cada lista. considere o que trafega pela sua rede wifi. Pode não ser assim importante a segurança em termos de monitoramento. entenda que muito do tráfego na rede wifi é criptografado, de modo que o simples acesso ao wifi por um invasor não vai dar acesso a essas coisas, como acesso a bancos ou sites ou coisas confidenciais na internet. Esse tipo de invasão é focado na particular conexão de interesse, e usa outras técnicas. Pode mesmo nem ser assim importante isso. Você pode estar sendo espionado de maneiras mais amplas, como gente monitorando sua vida para um eventual sequestro ou caras invadindo seu computador ou celular e aí claro que o wifi de nada importa, já que se trata de seu aparelho.
  8. Por definição bluetooth é uma rede de baixa potência e pequeno alcance.
  9. Está certo de que tem um problema? Esses testes de velocidade são irrelevantes. Seu computador sequer está ligado à internet. Se quer testar a performance da máquina com a rede deve fazer isso com outra máquina na mesma rede. Seu computador está ligado à rede local, a tal LAN. E a LAN pode ou não estar ligada a internet. E essa ligação pode nem ser direta, já que sua LAN pode ser estruturada --- de propósito ou sem querer --- em LAN distintas. Um medidor de velocidade mede por alguns segundos a transmissão de nada para lugar nenhum. Apenas dados de teste que não são processados em nenhum dos lados. Considere: quando seu computador tem que processar os dados em uma conexão gigabit será que ele poderia mesmo processar 125 megabytes por segundo? Talvez não. quando é só um download talvez consiga gravar, sem processar, em um SSD. Talvez não, porque a máquina pode estar fazendo outras coisas e o disco também. Se isso vem de algum servidor na sua rede ou na internet, pode ser que o servidor tenha limites de upload, de modo a evitar que alguns caras com conexões rápidas tomem o lugar de dezenas de clientes com conexões lentas. Pois é. Talvez não tenha "problema" algum. Repito: esses testes não significam muito exceto um limite transitório e teórico. E seu computador sequer está ligado a internet. No caso de um celular a 5G rodando esses medidores também é só uma indicação. Um exemplo: na minha cidade --- São Paulo --- em certas regiões se vê frequentemente medidas de 800 ou mais mbps no celular em 5G. Pouco relevante. É só um número e gasta megabytes e megabytes de dados para conseguir tal número, já que o teste é por tempo e a velocidade é relativamente alta: 850mbps por 30s são mais de 3 gigabytes por exemplo. Isso não leva a nada. Mas se usar um download a partir do aplicativo do HBO Max e baixar um episódio de uma série em 3s isso quer dizer algo... Máquinas não são "formatadas", apenas dispositivos de armazenamento. E nada indica que seja uma "solução". Não há razão para ficar diferente com os mesmos sistemas e drivers. E essas tecnologias de rede gigabit, que é o assunto aqui, tem mais de 20 anos então esses drivers são mais que estáveis. O computador não reconhece tal conexão. Isso não existe para ele. Tudo que a camada de rede sabe é que os pacotes saem para a LAN se não forem destinados ao próprio micro --- localhost. Se o endereço for um nome o serviço de DNS vai dar o endereço de destino. Se for um número... é um número. Sabendo esse número, seu roteador vai endereçar pacotes que não são para sua rede para o gateway padrão, que é onde está a conexão com a internet. E as respostas voltam --- o tal download --- a partir de uma tabela que seu roteador mantem sobre quem transmitiu o que --- isso é o NAT. Sugiro testar a performance na LAN com algo grande. tipo uma distribuição do Ubuntu, uns 4GB, e ver como o micro se comporta, simplesmente acompanhando os gráficos que o sistema mostra. E depois acompanhar um download desses, a mesma coisa, algo como um arquivo ISO para instalação de Linux ou uma distribuição de Windows. Aí poderá tirar mais conclusões.
  10. Isso porque VPN é um tunel. Pode ser entre o roteador e outro lugar ou entre o servidor e outro lugar. Ou mesmo entre o servidor e o roteador.
  11. Precisa manter o serviço RDP rodando no servidor e confirmar a porta que vai usar. O padrão é 3389 mas pode usar outras. Não precisa ter ip fixo desde que saiba qual é. Pode reservar um endereço no DHCP. E precisa encaminhar a porta em uso do roteador para o servidor. Mas precisa registrar sua rede no DNS de algum modo, como o serviço do DYNDNS ou NO-IP ou algum similar. O uso de VPN é uma conveniência para segurança e não uma necessidade em si. Nada tem a ver com servidor e RDP. Se a VPN parar no roteador não faz diferença. Se for até o servidor não precisa de nada no roteador.
  12. O propósito de redes e roteadores mesh não é melhorar o sinal do wifi. Na verdade o alcance de um ponto de acesso mesh --- chamado POD pelo marketing --- é menor, bem como a potência das antenas, se comparar com pontos de acesso wifi convencionais --- chamados AP pelo marketing. A ideia de mesh é aumentar a cobertura usando muitos aparelhos com baixa potência, minimizando a interferência. E usar algoritmos avançados e um canal de controle --- ethernet backhaul --- para acompanhar em tempo real TODOS os dispositivos conectados, de modo a permitir a transição transparente de um POD para outro sem perder a conexão. Em geral isso vem até desenhado na caixa dos aparelhos. É bem legal, mas custa uma grana. E se tem muitos aparelhos ligados via cabo fica ruim de usar, porque um POD tem uma ou duas conexões para cabo, se tiver.. O foco disso é wifi. Se possível procure aparelhos que permitam ligar o canal de controle via CABO. É muito melhor. Usando mesh com o backhaul via rádio fica ruim rapidamente. E considere que pode não precisar disso afinal.
  13. Não existe algo como "seu IP" em geral. Esses endereços são dinâmicos e atribuídos pelo provedor temporariamente. Mesmo que contrate um endereço fixo do prestador vai ser de um pool de endeeços que o provedor tem para alugar e já foi usado por alguém e será usado depois. Mesmo se você contratar e registrar para seu uso junto ao responsável no país ( Registro.BR aqui) vai ter seu endereço fixo enquanto pagar por ele.
  14. Talvez fenômeno não seja boa descrição. É apenas causa e efeito. Se testar com poucos dados de nada vale. Se testar por pouco tempo pode não perceber flutuações importantes. Assim é. Como está testando um serviço que não é o seu então não tem controle e tem que pagar pelo uso. Se representa uma empresa e tem foco em 5G e quer demonstrar isso vai usar a rede 5G que não é sua. Ou você paga ou a empresa que você representa paga. Ou o usuário paga. E pode só confiar nos protocolos e na ciência e acreditar que 5G é muito mais rápido. E testar usando. Deixe o usuário testar fazendo um download de 2G de um filme que ele quer mesmo assistir, por exemplo, ao invés de transferir para cima e para baixo dados inúteis, apenas para medir quanto demora.
  15. Leu essa parte do que eu escrevi? Pois é. Sequer respondeu sobre os servidores que usa. Mediu algo? Redefiniu tudo para o modo automatico? Qual o tempo de lease do DHCP? Coincide com o intervalo dessas falhas?
  16. Não entendi. Se conectou outro computador e está "tudo ok" então sua hipótese permanece. Sites não "caem do nada" e DNS tem cache. E os sites que acessa tem especificados prazos de validade para os endereços, o tal TTL, então mesmo que o DNS pare por curtos períodos ainda pode ter isso em cache na memória de sua máquina. Pode usar ipconfig /displayDNS e ver o que tem no cache a qualquer hora. E o prazo de validade de cada um. Os navegadores em geral também tem algum cache. Que servidores usa? O mais esperto provavelmente é usar os servidores do seu provedor, se ele tem um, porque a latência será sempre menor. Na dúvida faça o simples e meça: instale e rode DNSBench na sua máquina e veja quais são os servidores mais rápidos entre os em torno de 5000 que o serviço testa. E vai ver o de sempre: os do provedor são mais rápidos. As leis da física. E confirme que na configuração de sua placa de rede esteja tudo no automático. TUDO mesmo. É o mais esperto. Esses protocolos de rede de hoje em dia tem mais de 20 anos. Drivers de rede não vão corrigir problemas de conectividade ou tornar algo mais rápido. Isso é mito. Você pode precisar disso se tem uma placa muito nova, tipo uma placa nova de 10G ou 40G e que pode ter um driver novo para uma situação específica. Para uma Realtek, Intel, QualComm, Ateros, que vendem aos milhares a chance é pequena de fazer qualquer diferença. No caso de drivers embutidos em placas de rede então a chance é menor ainda de mudar algo: em geral usam chipset de grande alcance, tão comuns que tem drivers até para "famílias" de chips, como a Realtek. E a placa como um todo é testada intensamente com Windows e Linux.
  17. Não fica claro nem a unidade que tem nem a que quer usar. De todo modo se tem essa taxa de 900mbits por segundo deve apenas dividir por 8 para saber o valor em megabytes por segundo. E isso dá em torno de 112 megabytes por segundo. Isso é pouco relevante e pouco real também. Com os computadores e links disponíveis em geral hoje, 122mB/s é algo que seu computador provavelmente não conseguiria processar. Mas como é só um download precisa ver se seu disco tem condições de gravar nessa velocidade. o provedor dos dados (steam) pode nem garantir isso, ou mesmo limitar, para poder atender mais gente num dado momento sua rede pode nem suportar isso. Via wifi é absolutamente improvável. Mesmo a 5ghz com uma conexão exclusiva, uma placa bem moderna e um roteador tipo o AX10000 da TP-Link sua conexão com a internet deve atender mais gente, TV celulares, outros computadores, então pode nem ser bom usar 900mbps para baixar um simples jogo em 1 minuto e não em 10. 60GB são --- no marketing --- 60000 mbps. 7 minutos são 420s. Então isso dá em torno de 1142 mbps. Só que o download é imensamente comprimido. Se considerar uma compressão de 10:1 então tem 114mbps, um valor bem razoável, perto de 20 megabytes/s.
  18. @matheus.Matta porque não aproveita esse programa , esse tópico e a oportunidade, se por acaso não entendeu algo que foi usado nesses 4 programas? Pergunte algo objetivo. Teve algo aqui em relação a alocação de memória que não entendeu? E o forum permite ajudar mais gente. Essa discussão aqui já tem mais de 1000 visualizações. Então pode ser útil pra mais gente.
  19. NADA é algo muito amplo. Não há nada de filosófico no que eu disse, São apenas protocolos e a simples realidade das conexões de rede. Vou repetir apenas o primeiro parágrafo e talvez você possa dizer onde está o filosófico e não o objetivo e posso tentar explicar melhor... Não funciona assim. A placa não "tem" essas coisas. Esse é um limite e não uma opção. A realidade da conexão é dada pelo que tem dos dois lados do cabo na hora da conexão. Marcar a velocidade e o status de duplex seria como marcar o valor de 50 na nota de 20. O que tem lá no formulário da configuração de rede é UM LIMITE e não uma opção. Você marca lá até qual velocidade e duplex aceita conectar. Um limite. Nada filosófico. Em megabits por segundo. A segunda arte quer dizer que você não pode do nada especificar qual a velocidade da conexão, como não pode fazer com o valor da nota de vinte, que vem escrito nela. Essa parte era um exemplo, uma analogia. Nada filosófico. E a conclusão objetiva é que se você marcar lá que o mínimo é 1000 mbps e ligar em roteador de 100 não vai ter conexão nenhuma. E é o mesmo caso se seu cabo estiver com problema em algum dos 8 fios que tem dentro dele. Se for os das posições 4,5,7 e 8 e marcar 1000 mbps não vai ter conexão nenhuma, mas se deixar como automático vai conectar normalmente a 100 ou 10. É o protocolo, Não é filosofia. Automatico: até onde der, 10, 100, 1000, full duplex, half duplex 1gbps Full Duplex: ou isso ou nada. Nem vou dizer o que é mais espero configurar. Veja se entendeu agora e tentamos de novo. Ok, você só repetiu o que tinha dito. Os desenhos não acrescentam nada. Nenhum deles mostra o que você entende por "caiu". E se ela volta dá para imaginar que é de novo já que está de volta. Mas o que é "caiu"? Tem um desenho sobre isso? Seria a queda da conexão de rede? O que aparece lá? Onde? Tem conexão ou não tem? A conexão de rede Acho que dá pra entender que sue computador não está conectado com a internet apenas seguindo o cabo e vendo aquelas telas que você mandou. Uma ponta do cabo está no PC. E a outra numa porta do roteador. Se olhar no seu desenho lá, essa é a conexão. de rede. local. LAN. Nessa hora desconecte seu roteador da internet e vai ver que NADA muda na conexão de rede. Se for coaxial desligue o cabo, se for fibra otica desligue o cabo. Vai continuar conectado. Só a realidade. A conexão com a internet A conexão com a internet é do aparelho da operadora com a rede deles. Por isso você paga todo mês. A rede local é sua, privada, particular, local. Conexões de rede não tem personalidade nem vida própria. Provavelmente tem apenas um cabo com mau contato e ele falha. E é em um dos fios 4,5,7 ou 8 ou mais de um desses. Grande chance de ser no 8 que fica na pontinha e se a ferramenta que usaram para prensar o conector não foi boa ou a pessoa não apertou direito ele é o que tem mais chance de falhar. Se o fio ruim fosse 1,2,3 ou 6 então ia desconectar fisicamente mesmo. Não ia manter a 100 ou 10 mbps. Isso não é filosófico: na negociação automatica o driver de sua placa tenta ir a 1000 e FD primeiro. Se não der vai caindo. Só que para 1000 precisa dos oito fios, para 10 ou 100 apenas os 4 que eu listei umas vezes já. Isso é objetivo. Entendeu? 8 quer dizer todos. 4 quer dizer 1,2,3 e 6. dos oito. E não explicou mesmo o que "cai" então estou supondo que desconecta, e pode nem ser o caso. Qual o intervalo de DHCP que usa? 3 minutos parece muito pouco para roteadores de operadora.
  20. Não funciona assim. A placa não "tem" essas coisas. Esse é um limite e não uma opção. A realidade da conexão é dada pelo que tem dos dois lados do cabo na hora da conexão. Marcar a velocidade e o status de duplex seria como marcar o valor de 50 na nota de 20. E pode ser pior: se ficar um valor (mínimo) não factível não vai ter conexão nenhuma. Mesmo caso de duplex. Esses parâmetros existem para o caso em que se precise limitar o valor em algo ABAIXO do normal, como seria o caso de fixar 10mbps numa placa que suportaria 1000. Se usa isso em desenvolvimento, coisas como testes de drivers. Atualizar driver de rede é algo que quase nunca vai ajudar. Esse padrão é de 1999, muito anterior à sua placa-mãe, placas de rede e tal. Drivers são atualizados para corrigir erros específicos ou implementar novas funcionalidades. Só que décadas depois não há muito que mudar. QOS nada tem a ver com isso. QOS apenas prioriza determinados tipos de tráfego na conexão. Na MESMA conexão. Nada tem a ver com a velocidade ou com a conexão em si. Apenas faz coisas como dar maior prioridade a certo tipo de tráfego, como seria o caso de VOIP (telefonia). Não muda a conexão como um todo. O acesso a internet NADA tem a ver com a conexão de rede. Seu micro não está ligado a internet. A ligação com a internet se existir é entre o roteador da operadora e a rede da operadora. E essas "medidas de velocidade" são entre dispositivos e a internet. São de nenhum valor nesse caso. Se sua conexão de rede está a 100mbps claro que não vai trafegar mais que isso entre seu computador e a internet. Mas a conexão com problema é do seu micro com sua rede. O que é "cai a internet"? Cai a conexão de rede? Fica sem endereço de rede? Ou sem DNS? Ou sem nada? O que o sistema diz? Como sabe que "caiu"? É a conexão com a internet ou com a rede? Só tem um computador na rede? Mais nada? TV? Telefone? Tablet?
  21. @Midori Rodou o programa que mostrei? Comparou os dois? Deve imaginar que o que eu escrevi está certo e funciona, já que alguns dos BMP estão anexos... Bem, não precisava de um exemplo para eu entender o que seria ler separadamente, já que foi exatamente o que eu disse para não fazer e já tinha em todos os outros programas no tópico. Eu mostrei esse outro programa justamente para ter um exemplo das coisas que eu tentava explicar... Você não "teve que ler um por um" "para resolver isso". Apenas desistiu e voltou para o que tinha feito antes. Nada resolveu. Sobre o programa que escreveu: Foi esperto comparar com os valores no arquivo para saber o que esperar, mas... typedef struct { unsigned short signature; unsigned int size; unsigned int reserved; unsigned int offset; } BmpHeader; Seria mais expressivo o simples, como mostrei aqui. A assinatura é "BM" justamente por isso: para ver no DUMP as letrinhas BM para bitmap. Então é melhor preservar isso... Use o simples e mostre os dois char, afinal foi pensado para isso... Veja o início de um bitmap, direto do IDE: 0x00000233EC183A40 42 4d 22 50 01 00 00 00 00 00 36 04 00 BM"P......6.. 0x00000233EC183A4D 00 28 00 00 00 83 01 00 00 db 00 00 00 .(...ƒ...Û... 0x00000233EC183A5A 01 00 08 00 00 00 00 00 ec 4b 01 00 c4 ........ìK..Ä 0x00000233EC183A67 0e 00 00 c4 0e 00 00 00 00 00 00 00 00 ...Ä......... 0x00000233EC183A74 00 00 70 c0 28 ec 33 02 00 00 fd fd fd ..pÀ(ì3...ýýý 0x00000233EC183A81 fd 62 00 69 00 74 00 6b dc 32 0d 76 ad ýb.i.t.kÜ2.v. E já vê as letrinhas logo no início: B e M. Outro ponto é o próximo campo, que é o tamanho do arquivo. O sistema sempre mostra o tamanho do arquivo. Em decimal. E veja só: 86050 que é... 0x15022 em hexadecimal. E é o que vê lá na memória logo depois da assinatura Então é melhor fazer o simples e mostrar as letras, que sabe que devem ser B e M, e o tamanho. porque vai ler um arquivo que já existe então o sistema já te disse o tamanho, ao invés de mostrar valores em hexadecimal. Use o computador a seu favor Esse é o oficial para essa estrutura: typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER, *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; Documentada pelos donos da bola, em https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-bitmapfileheader Então uma pequena mudança em seu programa typedef struct { char signature[2]; unsigned int size; unsigned int reserved; unsigned int offset; } BmpHeader; E isso: #include <stdio.h> #include <windows.h> #include <wingdi.h> typedef struct { char signature[2]; unsigned int size; unsigned int reserved; unsigned int offset; } BmpHeader; int main(void) { FILE* infile = fopen("bitmap.bmp", "rb"); BmpHeader header; fprintf(stderr, " Tamanho do Header: %llu\n", sizeof(header)); fread(&header, sizeof(BmpHeader), 1, infile); printf( "\ Signature: '%c' '%c'\n\ Size: %d\n\ Reserved: %x\n\ Offset: %d\n", header.signature[0], header.signature[1], header.size, header.reserved, header.offset); fclose(infile); return 0; } Então vai ver algo assim Tamanho do Header: 16 Signature: 'B' 'M' Size: 1 Reserved: 4360000 Offset: 2621440 Não acha estranho? Sabe que o campo offset é isso? Um offset. Veja na documentação em português Então como eu já expliquei tudo está alinhadinho: os headers e os pixels. É um mapa afinal Só que o header tem só 14 bytes. Está claro aí: 2 + 4 + 4 + 4 ... E seu programa leu 16 e daí pra frente nada mais vai funcionar. Porque leu errado? Notou as diretivas #pragma nos programas que mostrei? Nada perguntou. é só comparar. Umas novas linhas no programa #pragma pack(show) #pragma pack(push, 2) #pragma pack(show) #include <stdio.h> typedef struct { char signature[2]; unsigned int size; unsigned int reserved; unsigned int offset; } BmpHeader; int main(void) { FILE* infile = fopen("bitmap.bmp", "rb"); BmpHeader header; fprintf(stderr, " Tamanho do Header: %llu\n", sizeof(header)); fread(&header, sizeof(BmpHeader), 1, infile); printf( "\ Signature: '%c' '%c'\n\ Size: %d\n\ Reserved: 0x%x\n\ Offset: %d\n", header.signature[0], header.signature[1], header.size, header.reserved, header.offset); fclose(infile); return 0; } #pragma pack(pop) #pragma pack(show) Ao compilar já vai ver o problema (1,9): warning C4810: value of pragma pack(show) == 16 (3,9): warning C4810: value of pragma pack(show) == 2 (38,9): warning C4810: value of pragma pack(show) == 16 Então precisa saber SEMPRE o padrão de seu compilador quando vai ler coisas que podem vir de outras fontes que não o seu próprio programa. No meu compilador e provavelmente no seu o alinhamento padrão é 16 e não dá pra manipular bitmaps assim. Veja a saída Tamanho do Header: 14 Signature: 'B' 'M' Size: 86050 Reserved: 0x0 Offset: 1078 Assim é
  22. O que você escreveu inicialmente é que está errado. Quando você renova um endereço ele não "atribui o IP do MODEM ou coisa assim". E está lá na imagem que postou. ipconfig náo atribui mas sim recebe. E o endereço do modem é fixo e não vai ser nunca o de seu laptop. É o gateway padrão da sua rede e em geral para essa operadora é 192.168.15.1, por razões de marketing. 15 era o código da operadora Telefonica que hoje é a VIVO, e o código de operadora era e é 15. Como todos os endereços 192.168.X.X são de uso privado e não roteáveis foi até lega isso acontecer, já que esse endereço não é assim comum como 192.168.0.0 ou 192.168.1.0 usados por todo mundo. O que acontece quando roda esse comando é que por 1 minuto mais ou menos sua placa de rede vai tentar receber um endereço IP, mais a máscara de rede, mais o endereço do gateway padrão, a partir de algum servidor DHCP que ofereça isso. Todo o tráfego que não é de sua rede vai ser encaminhado para esse gateway padrão e então é assim que acessa a internet, já que, repito, sua rede local é assim, local e não acessa a internet. Para isso paga a VIVO. É óbvio, mas não é isso que é óbvio. "Fazer a discagem" é uma herança do início do século, das primeiras conexões DSL da telefônica que davam de fato senhas para cada usuário acessar a internet através de um discador como era nos anos 90 com modems. Isso NADA tem a ver com o seu computador receber endereços de rede e com quem "disca" para a internet. Eu te expliquei acima que poderia ter DHCP habilitado também no AX1800. E também te expliquei porque. Você não fez isso, então: Com o AX1800 desconectado do VIVO, ao ao ligar seu computador nele ou ligar qualquer coisa via wifi dele, qualquer coisa que esteja configurada para obter endereço automático, não vai receber p. nenhuma porque o único servidor DHCP está desconectado. Só isso. Então, essa discagem é irrelevante e nada tem a ver com a rede local ou endereços IP. E o usuário e a senha são os mesmos para todo mundo. É uma bobagem isso da VIVO. Entenda que não foi por isso que não recebeu endereços de rede. Não , não é necessário desligar nada. As conexões são dinâmicas e basta desligar o cabo. Não pode ser diferente. Já expliquei isso umas vezes: a vivo usa esse protocolo PPPoE criando um tipo de tunel na conexão IP entre o modem e a rede da VIVO. Se o modem está como ponte não tem IP. E a conexão tem que ser feita por alguém. Pode ser o AX1800 ou pode ser seu micro, como também já expliquei. Não faz diferença. Pode usar a rede 192.168.15.0 ou qualquer uma que achar preferível. Sua rede é local e pode usar qualquer endereço privado. Por isso eles não são roteáveis: todo mundo pode usar o mesmo ou qualquer um. O "motivo" deve ser apenas um erro de sua parte fazendo as coisas na ordem errada ou não esperando o aparelho reiniciar, porque ele faz isso sozinho. Te mostrei acima o endereço do emulador de fábrica onde você pode experimentar isso sem mexer em nada na sua rede. Essa tela, como te falei antes, em https://emulator.tp-link.com/Archer_AX10v1_US_simulator/index.html#lanAdv E vai ter essa resposta. Apenas espere. É obvio que se mudou o endereço de rede vai ter que se reconectar, certo? Redes é um campo muito amplo. Mas não precisa estudar nada em especial para configurar uma rede doméstica ou uma rede de pequena empresa. Leia o que eu expliquei naqueles tópicos que te listei. E os números, os desenhos, os argumentos. E meça as coisas. E entenda que nada tem a ver a rede local com a internet. E que a "velocidade" mostrada com esses medidores nada tem a ver com a rede local. Você pode ter uma rede local a 40 gbps e ter um link com a internet de 100kbps só para suporte, ativo apenas sob demanda em caso de emergência. Nada tem a ver uma coisa com a outra.
  23. É o contrário. Ele recebeu um endereço IP a partir do modem da VIVO, é o contrário. O servidor é o modem da VIVO. Não precisa ser assim, acho que já falei disso, mas é o mais cômodo. O que acontece se você tiver outro DHCP rodando no AX1800 pode ter uma latência menor (no DHCP) para os aparelhos que estão se conectando no wifi ou no cabo pelo segundo roteador uma rede que continua funcionando se o modem parar. Porque? Aritmética e redundância: você tem dois, mas desativou um então se o VIVO parar não tem endereços e nada vai funcionar. Se sua rede existe só para isso, para acessar a internet, então ok. Mas se tem uma impressora na rede, se quer transferir arquivos de um pc pro outro, assistir videos do PC na TV da sala ou quarto, coisas que nada tem a ver com a internet, nada vai funcionar... Não sei o que significa "a frequência que ele está emitindo". Vou repetir: ele não está conectado a internet. E o que diz essa mensagem é outra coisa: ele só quer dizer que não em nada ligado na porta WAN, e não tem mesmo. Ou não deve ter mesmo. Ele acessa a internet através do gateway padrão, como tudo na rede. Nada tem a ver com porta WAN. Se tem acesso ao gw e ele está ligado ao modem e o modem tem acesso a internet então tudo funcionada. TCP/IP foi criado para isso. O que não é local vai para o gateway da rede. Pode ter vários gateways, só um deles é padrão. Rode ROUTE PRINT em seu pc e veja a saida. Então não use. Mas considere o que eu te expliquei sobre a aritmética e o fato de deixar de usar algo que tem e está pagando. 1800 mbps ao invés de 3000, 3 portas de rede ao invés de 5. E a modesta cobertura de rede a 5ghz. Se sua casa tiver dois ambientes, como um quarto e uma sala, já em a topologia comum: um roteador atrás de cada TV, uma no quarto e uma na sala. Um cabo indo para cada TV, grandes consumidoras de banda hoje em dia. wifi em duas bandas com antenas em cada ambiente. As leis da física , a aritmética e a redundância... Eu expliquei os números, com desenhos, roteiros e argumentos. E as perdas que poderia ter ao ligar de outro modo. E acho que viu o que significou em relação aos problemas e perdas que outros relataram nos cenários deles. Fora a aritmética e a cobertura wifi Eu não disse isso. Esse teste e todos os outros medem apenas uma taxa de transferência instantânea de uns dados (sem processamento nenhum) de alguns servidores para seu dispositivo. NADA tem a ver com a conexão de rede, como disse aqui muitas vezes. E se quer medir isso deve medir entre as pontas do cabo ou de cada lado da antena, usando o que tem aí, como a pasta \Windows de um computador. Apenas copie e fique olhando o desenho e vai ver a taxa de transferência na tela o tempo todo. A pasta do WIndows tem mais de 11GB então pode acompanhar qualquer flutuação durante a transferência, o que pode mostrar problemas com o rádio ou a rede ou as máquinas. É o que se faz na prática.
  24. @matheus.Matta Sim! mostre como está ficando. Pode ajudar também muita gente por ter vários exemplos para um trem que não é assim comum, como gerar e gravar bitmaps/ Entendeu a diferença entre escrever de uma maneira e de outra? Entendeu o que significa encapsulamento e porque é melhor escrever em termos mais simples, de "entidades" arquivo e bitmap somente? E o lance dos milhões de chamadas (mesmo) a fread ao invés de uma ou duas ficou claro para você?
  25. Não, não era com o Windows. O programa não estava bom, a biblioteca também não. Mas o problema era que precisava habilitar uma extensão ao compilar para aceitar os VLA que sua biblioteca havia declarado. E se usa Windows precisava naquela versão instalar também um clone de dirent.h para Windows porque essa é uma biblioteca Unix nativa.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!