Programação de soquete TCP/IP HandsOn-Windows e Linux em C e C++ | Sonali Shrivastava | Skillshare
Pesquisar

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Programação de soquete TCP/IP HandsOn-Windows e Linux em C e C++

teacher avatar Sonali Shrivastava, TCP/IP Socket Programming HandsOn-Window

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Sessão de soquete1

      17:31

    • 2.

      SoqueteBasicsPart1

      12:46

    • 3.

      SoqueteBasicsPart2

      21:16

    • 4.

      SoqueteSessão3 Part1 TCP OSIModelPreview

      4:06

    • 5.

      Sessão de soquete3 Part2 TCP arquitetura em camadas OSI

      14:10

    • 6.

      SoqueteSessão3 Part3 TCP OSIModel RealWorldExample

      16:35

    • 7.

      Soquete Session4 ServerClientMethodsWindows Part1

      21:38

    • 8.

      Sessão de soquete5 ServerClientMethodsLinux

      20:41

    • 9.

      Senão de soquete6 Diferença ServerClientMethods para Windows Linux

      12:35

    • 10.

      Sessão de Socket de execução ServerClientCommunication Windows C++ Part1

      20:50

    • 11.

      Sessão de Socket de execução ServerClientCommunication Windows C++ Part2

      20:18

    • 12.

      Sessão de Socket de execução 8ClienteComunicação Linux C Part1

      18:42

    • 13.

      Sessão de Socket de execução ServerClientCommunication Linux C Part2

      16:28

    • 14.

      Soquete Sessão8 execução ServerClientCommunication Linux C++

      24:20

    • 15.

      Sessão de soquete9 UnderstandingHTTPServerClientCommunication

      28:19

    • 16.

      Sessão de Socket de programa HttpApacheServerClientCommunication Windows C++ Part1

      19:08

    • 17.

      Sessão de Socket de programa HttpApacheServerClientCommunication Windows C++ Part2

      13:27

    • 18.

      Sessão de soquete11 execução HttpApacheServerClientCommunication Linux C

      20:32

    • 19.

      Sessão de soquete12 Bloqueando não BlockingSockets MultiClientServer

      23:47

    • 20.

      Sessão de soquete12 Bloqueando não BlockingSockets MultiClientServer

      16:42

    • 21.

      Sessão13 Programa e execução UsingSelect MultiClientServerCommunication 1st Half

      28:53

    • 22.

      Sessão13 Programa e execução Selecione MultiClientServerComm 2ndHalf Part1

      18:26

    • 23.

      Sessão13 Programa e execução Selecione MultiClientServerComm 2ndHalf Part2

      12:50

    • 24.

      Sessão13 Programa e execução Selecione MultiClientServerComm 3rdHalf

      26:22

    • 25.

      SoqueteSessão14 Makingsocket como não NonBlockingSocket

      29:23

    • 26.

      SoqueteSessão15 programa e criação de exeção como não Makingsocket

      30:26

    • 27.

      Sessão de soquete16 ApplicationSocketProgramming

      8:29

    • 28.

      SoqueteSessão17 códigofonte

      0:15

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

302

Estudantes

1

Projetos

Sobre este curso

Você sempre realizou comunicação entre 2 processos ? Se NÃO, a comunicação de cliente do Soquete Server é bom para começar.

Este curso abrange programação de soquete para Windows e Linux também em C e em C++

Ele abrange vários programas de soquete e execução para Windows e Linux.

Também abrange Soquetes de bloqueio e não bloqueio com explicação do programa e execução dele.

Já compartilhou código fonte para todos os programas de socket

É ótima tecnologia adicionar mais ponto ao seu currículo

Como aprender programação de soquetes vai pagar mais no setor de TI de hoje, tanto valor quanto dinheiro em sabedoria.

Por que aprender programação de soquete?

É a pedido tecnologia sendo continuada até agora.

Além de aprender arquitetura de CPU, espaço de memória e vários algoritmos, você será capaz de criar programas eficientes e estará na lista de concorrentes de bom programador nesta indústria de TI.

Você vai conseguir quebrar qualquer entrevista e brilhar nesta indústria de TI, pois a programação de soquetes é tecnologia sob demanda.

Por que se inscrever neste curso será a melhor decisão para você?

No final deste curso, você não só vai ganhar conhecimento profundo da Programação de cliente do Socket Server do zero para Windows e Linux, mas também vai ganhar conhecimento de camadas de rede e como eles desempenham papel importante para trazer comunicação de soquete da fonte para detsination.

Você se livrará para escrever Programas de cliente do Socket Server com execução no Windows e Linux também.

Você vai entender em profundidade como bloquear e não bloquear soquete e será capaz de escrever programas e executá-lo.

Você também vai ser capaz de desenvolver poder de habilidade lógica e verbal

Isso vai levar ao seu crescimento e brilho na carreira.

Você vai conseguir quebrar qualquer entrevista na indústria de TI de hoje.

Este curso vai cobrir todos os conceitos básicos da Programação de Soquetes com não só "como codificar", mas também colocar luz em detalhes "Por que é necessário e como é importante" para que todos os seus conceitos sejam limpos do zero e você pode quebrar qualquer entrevista dando respostas técnicas para todos os pontos.

Conheça seu professor

Teacher Profile Image

Sonali Shrivastava

TCP/IP Socket Programming HandsOn-Window

Professor
Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Visão de Socket Session1 Visão geral: E bem-vindo a isto. seja, a programação de soquete DB CPU ou se mistura como maravilhosamente sabe, usando comprado C, bem como C plus. Então, aqui nesta sessão, eu estaria listando quais tópicos estaremos cobrindo em todos esses objetivos. Então as metáforas, a óptica, eu vou estar entendendo os conceitos básicos de soquete para agarrar que este Amanullah ele John relacionou, a fim de entender através da programação de soquete. Depois, depois a seguir. E vimos a arquitetura DCP, que também é chamada de arquitetura natural, também indo como modelo OSI. Então aqui você vê componentes de rede de água, bem como vamos ver como a sombra, a fim de trazer a comunicação soquete. E entendemos isso com o exemplo do mundo real. Em seguida, a próxima sessão estaremos vendo essa configuração, que é necessária a fim de bombear comunicação soquete para ambas as janelas, bem como B nada. Também veremos diferentes funções de soquete, que também é chamado como métodos para ciber. A guerra declina para Windows e Linux. E uma ligeira diferença nas funções de soquete para Windows e Linux, vamos ver que você tem sessão, não entender a diferença entre o sistema operacional Windows, a fim de trazer comunicação de soquete. Então vamos ver o que é pouca configuração, portanto janelas. E uma instalação de caixote é, portanto, da Lena. Então, como eles postam quais arquivos de cabeçalho são necessários para serem aqueles que tanto na obrigação de soquete e arquivos de cabeçalho são necessários ou Linux. Então vamos ver o que todas as partes diferentes do soquete atendidas estão lá de qualquer forma. E nove para Windows e soquete robô manipula nossa quantidade líquida. Então isso é muito ligeiramente amigos e os métodos de soquete. Então todas essas diferenças seremos vistos nessa seção. Em seguida, a próxima sessão estaremos começando com programa de soquete e também irá executá-lo. Janelas barradas como Veneza para nós. Então aqui escrevendo programas diferentes. Então isso será através de comunicação soquete programa entre servidor e nove. Isso é mais simples cyber em nove Jack de negações que estaremos vendo e nós também vamos executá-los para aqueles. E também entenderemos os outros. Programa de hóquei, o sobre SCTP, Archie Cyberduck comunicação nove soquete no PC, Barbie nesses aspectos. Só sabe e nós também estaremos executando-os desta maneira, estar construindo todos esses programas. Em seguida, a outra sessão, estaremos vendo o que estão bloqueando, bem como o que são soquetes não-bloqueadores. E até mesmo estar escrevendo esse programa ou a cena e estará executando-o para entendê-los mais. Mas também vamos ver como alcançar meu servidor declines. E vamos ver que nossas abordagens diferentes, a fim de Obama, eu acho que nove servidor de comunicação soquete. Então, a primeira abordagem básica, beber que linha fazer embora? Então você pode entender que nossos clientes, que colocam em negar salvo e criar vários threads. Então esse raio decide um thes e passa por essa abordagem. Então vamos ver quais são as desvantagens estão lá em usar essa abordagem não é recomendado para usar NAT no exterior. E, portanto, eu tinha abordagens que começaram a fim de evitar aqueles desvantajosos. Portanto, a próxima abordagem é usar a Basílica. Então, mesmo ver o que faz selecionar e qual é sua importância, a fim de alcançar a comunicação por satélite multiplicada. Assim, as pessoas entendem isso mais eficaz escrevendo e executando. Mas sistema operacional Linux. Então vamos ver também a abordagem que é fazer isso ocupa Nagasaki e conseguir multi-linha eu sou negação. Então vamos escrever o programa e executá-lo no nariz, a fim de atender o socket como não-bloqueio e, a fim de alcançar a comunicação multi-cliente servidorem fim de alcançar a comunicação multi-cliente servidor então eu tenho o código-fonte para todos os programas de soquete, a coorte gigante neste inteiramente. Então você pode exigir, depois de entender a comida que eu tinha explicado sessões. Então todas essas coisas, nós já fizemos isso e causa terrível. Eu descrevi em suma. Então eu tive que como eu expliquei o que cada sessão estamos indo para tópicos que estaremos oferecendo de fato. Então vamos ver. Primeira sessão, vamos ver o básico da programação de soquete. Então, esta sessão é dedicada a todos os aminolei, estes que estão relacionados para a programação de soquete. Compreender a comunicação entre servidor e cego. Vamos ver o que faz soquete, o que eu digite socket fonte está disponível. E em terminologias de soquete relacionadas a este domínio e o que é protocolo de comunicação. Então todas as terminologias relacionadas com a programação de soquete que você estará, você estará vendo. Mas todos os métodos são usados para a parede celular e métodos de mármore são usados para a linha, a fim de comunicação bem bola soquete entre o servidor eo cliente. Então todas as peças que estão relacionadas com o soquete que você estará cobrindo nesta primeira sessão. Portanto, esta é muito visita de rubrica, a fim de iniciar o soquete de negações. Assim, a próxima sessão é dedicada à arquitetura ECP, que também é chamado como uma arquitetura negativa ou jarda, mas ainda chamado como modelo OSI porque sessão muito importante. Então esta, esta questão. Toda a rede que é componentes netbook que são necessários para trazer a comunicação de soquete entre linhas de solvente. Então, como é que os componentes vão se comunicar uns com os outros para que a presença de nossos sete Leo. Então competir arquitetura que eu descrevi aqui e nesta sessão eu passei por palestras, mas música foster bobina estará listando. Mas, por padrão, esta palestra será distinta. A arquitetura da camada de rede. Então, que serão sete componentes foram diferentes rede Leo. Então eu vou estar explicando qual é o propósito de cada camada de E/S de rede. Então isso é muito B6 e você vai encontrá-lo mais investindo. Você estará entendendo como esses componentes de rede se comunicam uns com outros, a fim de trazer comunicação de soquete embora com esta informação, com isso já dias na primeira palestra, e estaremos cobrindo o segundo palestra da mesma sessão, que eu vou estar explicando que exemplos do mundo real e equidade afundando com a arquitetura de camada de rede que é TCP arquitetado avatar de áudio. Nesta palestra, você entenderá outro exemplo do mundo real, vid.net Leo. Então vou explicar como esses componentes de rede, como essas redes desempenham um papel importante no exemplo do mundo real. Então, esta segunda palestra irá limpar todos os seus conceitos de todos os sete Leões da Rede da arquitetura PCP. A próxima sessão que é ensinada sessão que estaria relacionada ao método de cliente de barra lateral de soquete específico do Windows. Então, aqui eu vou estar listando métodos de cliente de soquete de defesa que são usados para o sistema operacional Windows. Então eu vou estar afundando com o, então isso é dedicado a isso. A próxima sessão será feita. Linux linha de servidor de soquete específico contra o pensamento com o antigo. Então aqui novamente a mesma coisa, mas isso será específico para o sistema operacional Linux. Essa é a diferença mínima entre os poetas Rita usa para ciberaplicar o que janelas, bem como para o líder. Então vamos ver a próxima sessão. Essa diferença entre o Windows específico, bem como o sistema operacional Windows de programação de soquete específico. O que são meus pensamentos são que métodos imortais ou Bolinas net e trabalhar em nossas diferenças estão lá entre Windows e Linux. Existem poucos métodos que são diferentes. Uma forma específica, Windows e Linux. E não há muita diferença também será visto aqui nesta sessão. O que nossos arquivos de cabeçalho você tem que usar se você tiver dois programas de soquete braço em massa para Windows Operating System e como ele é diferente para o sistema operacional Linux. Em seguida, vamos estar vendo o que são sido configurados é necessário para sistema operacional Windows, a fim de executar a programação de soquete, o que é construir uma inicialização é necessário, mas o sistema operacional Linux. Em seguida, nesta próxima sessão que uma sessão seis, Eu tenho Gvd Windows específico programação de soquete TCP em C mais. Então aqui esta, esta, esta é a comunicação básica de soquete entre o cibere como será que o gráfico ocorre entre o servidor e o cliente. E isso, isso será visto para o sistema operacional Windows. E vamos escrever o código em C mais. Então, isso irá ajudá-lo a escrever o programa no IDE ou doc ID VB usando e como a comunicação ocorre em estar executando-os. E a próxima sessão será, porém, programação de soquete em C e C mais, além do que o sistema operacional Linux. Então isso parece programação de soquete antes do sistema operacional Linux. E ao escrever a potência, bem como C plus. Então, há duas palestras porque eu cobri em C, bem como eu cobri-lo C mais. Então este é novamente o programa. Você estará escrevendo o código e executando-o para o sistema operacional Linux. Então, na próxima sessão que uma sessão oito, talvez entendendo um HTTP disse publicação linha no TCP. Então, uma vez que você entender isso, comunicação VCB se comportou mal coberto 467 sessão para Windows e Linux. Então você entrou, você vai entender como este servidor HTTP nove também pode ser, comunicação também pode ser aconteceu em PCB. Então este é o nosso ganho, será fazer o coordenador do programa para antes. Nesta sessão, entendemos cartaz chamado os conceitos como servidor HTTP Apache se comunica com o navegador Klein em seu PCP. Então eu vou explicar você, embora coisas como Apache disse o que ele se comunica com o cliente, que é sempre que você está dando qualquer link no navegador, qualquer navegador que pode ser, que é Mozilla, Firefox, ou Chrome. Em seguida, como esta solicitação é enviada do lado do cliente é do lado do navegador para esse HTTP Apache lado a lado, e como o servidor responde a esse declínio na forma do cabeçalho. Então tudo o que eu tenho abordado nesta sessão, Eu quero o que essa linha faz e quem disse o que e como disse o que eles estão dizendo? Isso é gera dois planos e mantenha a página é carregada. Que maravilha, o que quer que o usuário deu qualquer link no navegador que esta sessão virá conhecer ou teatro todos os conceitos de servidor HTTP nove publicação. Então isso pode ser se você for em sequência de acordo com a sessão, se você comprou nova sessão 60, sessão sete, e então você vai para a sessão oito, então isso será em você porque então quase a programação é vai estar escrevendo para isso. Então a comunicação será semelhante. Meconium mínimo V3. Então este entendimento USB que cobrimos todas as sessões e incrementos ou embora. Então indecisão em dedicar sobre volta. Então a próxima sessão será a mesma coisa que sobre África. Estou perturbando com essa comunicação estúpida do STDP Cedric Nine. Vamos iniciar esta sessão pela execução específica do barramento VW da publicação do cliente servidor Apache HTTP em C plus. Portanto, este bolo é pré-requisitos necessários. Então, quando você percorre a sessão, então só você deve visitar a sessão. Porque esta é a compreensão de como esta comunicação ocorre. E depois de entender a comunicação e fantasioso, então. Se você estiver tendo o sistema operacional Windows, ou você pode escrever um código. Que dB extra, servidor Apache. Eu tenho toda a nossa programação e execução ou como eu deveria dar-lhe um B27 se comunica com Klein é D mais. Então nós fazemos o programa para isso e para o sistema operacional Windows em C plus y. Então, o mesmo programado por para o sistema operacional Linux em C. Então, dependendo de qual sistema operacional você tem, se você tem Windows, você pode ir através desta sessão. Se você tiver um mouse, você pode passar pela sessão. Sessão. Dado BC, como faço para alcançar minha comunicação declina servidor usando o soquete no sistema operacional Linux. Então, aqui, dada uma recuperação enquanto o c. Então agora muito rápido palestra, seremos forçados o que bucky escuro, bem como tomadas não-bloqueadoras. Mesmo o também a primeira abordagem, a fim de obter mês declínio várias comunicações neste usando a função select. Então, até mesmo ver o que um select, select função, como ele desempenha um papel importante e o que deve argumentos estão lá. Então, a próxima palestra vamos ver, vamos estar escrevendo programa e executá-lo em todos usando a função select, a fim de alcançar minha comunicação servidor declina neste homem que eu até entendo todo o meu cliente ou Sybil por essa abordagem, usando a função select. Em seguida, na próxima palestra, estaremos usando a abordagem diferente, a fim de alcançar meus declina vários comunicação. E essa é a segunda abordagem, tornando o soquete como sem bloqueio. Então vamos ver como usá-lo. Eu não preciso desses são necessários depois de entender isso na palestra três. Em seguida, na palestra quatro, estaremos escrevendo o programa e executando-o fazendo esse socket como não-bloqueador. Que este pensamento nesta palestra três, desde mesmo entender como fazer o soquete é não-bloqueador, Bem, a função eval é usado e que pedômetros eu usei nesta palestra, dizendo que este conhecimento do que borbulhou na palestra três estaremos escrevendo o programa e executá-los, tornando o soquete como não batendo e como conseguir multi-linha eu sou negação. Então isso governando vários programas, a fim de alcançar minha comunicação celular declínio por diferentes abordagens diferentes. Então, por último, temos visto a aplicação do soquete. Então ele notou que vamos ver a linha cibernética dos veteranos da AVR. Are, você é incapaz de ver os exemplos do mundo real de fin em que o soquete é usado. Então agora desta maneira, estaremos cobrindo todas essas sessões neste processo contra CBR, acompanhando todos e tudo no sistema operacional Windows, bem como para o sistema operacional Linux em C como Veneza, C plus. Então você vai achar isso mais interessante. E é explicado com o programa de laptop e execução. Dependendo da Lena e do arco-íris. Seus objetivos. Eu não sou, se você compartilhar seus comentários como homens, como leituras como um meio de não a carne e fui influenciado a publicar tais vídeos sob demanda. S-bar, sua exigência. Então Tank vocês amigos. Muito obrigado. 2. Noções de SocketBasicsPart1 1: Bem-vindo a esta sessão básica soquete, que é Betty, AS sessão de todo este veterano objetivos, eu sou fazer você andar através de diferentes tópicos em é o que este socket, que são tipos de soquete existem? O que eu tenho lógica dominante associada? Soquete. De modo a entender na tomada tomada Rami sessão antecipada e por que este soquete é necessário. Quais métodos de soquete estão disponíveis no Windows e na parede? Os métodos de soquete estão disponíveis nas unidades serão diferentes. Então vamos começar passo a passo. Passando para o primeiro tópico, o que faz soquete? Tomada? É uma combinação dos dois nós. Mas nosso próximo livro, ou você pode dizer comunicação entre os dois processos. Então deixe-me fazer você entender através do digram. Mover para os objetivos de um adulto não é a definição diz socket é uma comunicação entre dois nós. Então suponha que você está tendo n4, n1, n2 e n3. E uma vez que é uma comunicação entre os nós ou se netbook. Então deixe-me nomear. Então este é um, este é três. E a comunicação entre eles, isto é. E vamos nomear isso como para a internet. Está vendida. O que significa soquete? É uma comunicação entre os nós ou rede mais ampla que é internet. Então, sim, você pode ver aqui, nós pagamos este n1 e n2. Estes são os nove nó e este nó três, como eu disse, quando não originalmente emitido ou discutir detalhes sobre ele à frente, na verdade, modo que você vai entender o que uma barra lateral, bem como o que é a comunicação que ocorre entre nó um e nó três e nó dois e nó é a comunicação socket é através desta comunicação socket ou se nacional. Então essa definição que é uma comunicação no deserto de nós azuis. Você viu auditar o pescoço deles através da rede. Novamente, consulte a comunicação entre dois processos. Então isso pode ser feito assim processos, processo cliente um, processo dois. E isto é isto que vou fechar. Apesar de não ter chegado a prazos. Então, o que você vê aqui, você vai entender melhor. Então ele, eu teria ousado, embora no livro do pescoço, que está ouvindo na porta em particular e tendo um endereço IP. É chamado como uma espécie de um. Então este realmente precisa do dinheiro. Então ele de cada lado de um mecanismo, na verdade um deve estar ouvindo em particular ordenou um endereço IP. E, na verdade, deve estar a enviar a ligação. Então aquele que está ouvindo, na verdade este, o lado do modo item e aquele que está enviando a conexão. Na verdade, haveria nós de cliente. Então estes são o nó do cliente, que é o nó um e dar-lhe um remetente e ação, você sabe. E este Norte ouvindo na verdade, então este forte como este lado deve ser e este número de porta em particular e deve ter um endereço IP. Então suponha que você tem, você quer saber comunicação entre máquina host diferente que tem sistema operacional diferente, máquina diferente. Então você sabe, Prudence, se você está conectado ou se ele se move, então os endereços IP da máquina burra, alguns dados dual possuem máquinas que estão conectados ou se netbook muito ele tinha sido tido um endereço IP e Adam realização nesse endereço IP. Então, se você quiser que a comunicação do soquete ocorra, então um deve ser alinhado, um deve ser sutil. Então este lado da arte, que você pode decidir sobre, o mecanismo é que ele deve estar ouvindo. Ele deve estar ouvindo o número de porta específico, bem como endereçável IP. A máquina humana tem o endereço IP. Cada máquina tem endereço IP. Por isso, deve estar a ouvir , deve estar a ouvir particular. Você veria todos os mecanismos passo a passo. O que está ouvindo em detalhes e qual é esse endereço IP? Qual é o número da porta? Então só para fazer você entender, apenas para visualizar, fazer, visualizar o que exatamente a luz do sol como homens como clientes. Então, isso é o que eu mencionei. Então, vamos para o próximo. Esta é uma nota importante. Cada processo que cria o soquete para a comunicação. O próximo ponto, os dois processos podem se comunicar uns com outros e ele dobrou o soquete tem o mesmo domínio, bem como o tipo de soquete. Portanto, não se preocupe com este domínio de endereço e o tipo de socket, todas essas terminologias e fazer você entender e mais slides. Então, apenas entendendo que mais importante ou eles dizem que este processo está realmente faltando comunicação do meio. Um para se comunicar ali. E mediram através do soquete. Você deveria ter criado um soquete para eles. Então suponha que ninguém pense que, como um nó de cliente, tem que atracar com a rota sul ou o quê? Esta internet. Então temos que criar um soquete para este nó nove. E temos que criar o soquete para o modo servidor. E o segundo sobre isso é dizer que se você está criando um soquete para os nove volts, digamos nó um. Se você também estiver criando o soquete para o software que é o nó três, então o tipo do soquete. E então presumivelmente o mesmo. Então eu vou fazer o seu que é o tipo de socket e o que os centros de domínio. Mas apenas fabricante de ferramentas, sem dúvida que FindAnswer, Por que deve ter o mesmo endereço domina ocupado. Então vamos ver sobre o que todas essas idéias dominantes. Então este domínio de endereço, que eu pensei no slide anterior. Então, se você falar sobre o Doumani em nossos tipos de comida de drogas. E assumindo que o primeiro é a descrição do domínio unix é que os dois processos. Mas apenas compartilhando o sistema de arquivos comum, a empresa deu-lhe o endereço do soquete. Será a cadeia de caracteres, que é então entrada no sistema de arquivos. Então, o domínio de endereço, que eu disse que é o primeiro é um domínio unix embora seja uma coisa simples, na verdade, que se os dois processos acima de 90 para se comunicar um com o outro por estoque lhe dará um tornar-se negando na verdade através do sistema de tubulação comum. Se ele pensou que, com respeito ao isolado, partilhará o escocês através do sistema. E a outra coisa é que aborda missionário, seja para este socket com um tipo de dados string, que isso é sobre o domínio unix na verdade. E eu não sou bom. Dipole, o endereço domina esse domínio infinito. Então, V2, para estar vendo este domínio da internet, você vai usá-lo, mais comumente usado na verdade. Assim, no, na imagem de sonda e recuperação recuperar a unidade de milagres incorporáveis é mais comumente usado. Então, o que vai acontecer? Aqui? Os dois processos que estão sendo executados na máquina host se comunicarão pela internet a mesma coisa, que eu não sei. De modo que dois processos dizem que o nó um e o nó três, porque aqui o n1 está fornecendo nó e o nó três. Então nó, então esses dois nós realmente a revolta em máquinas diferentes. E, portanto, eles se tornarão negados ou o que a internet, se eles comunicarem o que eles realmente significavam isso esta bobina, Leon tendo neste domínio no endereço infinito. E os endereços do soquete do é um endereço pretendido era o meu simplesmente parece dizer que sim, que endereços ou esta máquina ou aquela máquina que é denotada pelo evento acontecendo por endereço IP ou endereço IP da máquina me visitou em fazer um tambor. E este conjunto do item ONE, na verdade, ele terá o endereço IP do endereço IP da máquina numérica. O satélite está funcionando. Portanto, é tão simples quanto você pode entender e esse diagnóstico. Então V0, V0 fazendo uso do domínio pretendido porque isso é mais comumente usado. Então isso é tudo sobre entropia dados sobre seu endereço de internet será no grupo de Kentucky. Então isto é tudo sobre este domínio, que temos pensado e este tipo de socket. Então temos visto no slide anterior na verdade a nota importante realmente processo manual que se comunicam uns com os outros. Homem eles estão tendo o mesmo ou destruir a mim e o tipo de tomada Saint. Então agora você pode entender que se o nó está fornecendo nó e nó três é um conjunto de desconhecido. E na verdade ele pode ter que atender a comunicação através do soquete usando o soquete entre Norman e nó v. Então eles devem ter o mesmo domínio de endereço. Então eu não sei, deve ter realmente que este domínio como o domínio unix, se ele está tendo domínio unix do que celular 3D conhecido também deve ter o domínio unix. E se você quer o código recuado, na verdade que eu expliquei, então o normal também deve ter o domínio do jantar como um endereço. E o nó três, há muito mais detalhes também têm previsto albinismo no jantar. Então, embora eles devessem ter o mesmo, ou eles deveriam ter, ambos deveriam ter unidades para mim, ou eles deveriam ter, no entanto, infinito. E a segunda coisa é que você pensou que deveria ter o mesmo soquete volta para o nó um e nó três, a fim de comunicação do veículo sobre o soquete. Então vamos ver o que esse tipo de soquete realmente? Existem dois tipos de soquete na verdade. Então isso é um positron é apenas um soquete de fluxo e o soquete de datagrama de ponto menos financiado. Então vamos ver o que é esse soquete de fluxo. Portanto, ele usa o protocolo TCP. Então este é um protocolo de controle de transmissão. Então o que faz rompeu epistemicamente o ciclo, modo que eu percorri uma vez na verdade, o que eu provavelmente fiz. Assim, o protocolo TCP terá um conjunto de regras realmente enriquecer o soquete de fluxo será ou ser. E sim, o soquete in-stream vem ele se comunicará como um fluxo contínuo de protetor. Então, qual é o comportamento do soquete de fluxo? Por stonewall, ele usa protocolo TCP escuro e atividade de comunicação. Eu estou aqui, você vê a areia, na verdade, se você usar soquete de vapor, portanto, a comunicação será bidirecional porque uma vez que essa conexão é desenvolvida, no caso deste soquete fluxo continuamente cinto em um transporte do caixote do lixo v3. Isso acontece no caso de soquete de fluxo de pontos. E no caso do soquete de datagrama. Ele usa UDP, é User Datagram Protocol. A mensagem inteira será enviada de uma só vez. Então isso é sobre o soquete de datagrama. Então vamos ver sobre este protocolo TCP e protocolo UDP, como eu disse, não olhar todas as regras de configuração médias para este TCP serão definidas raízes dopadas. É diferente do que o UDP. E temos visto socket fluxo é fluxo eleitoral contínuo ou produtivo e ser transformado em que aqui com a mensagem será enviada de uma só vez. Então agora vamos ver o que faz este TCP e UDP. Então, uma vez que você vê isso, TCP e UDP vai entender o que é o soquete de fluxo que você precisa estar usando, e o que é o soquete de datagrama. 3. Noções de SocketBasicsPart2: Chegando ao protocolo de comunicação. Então isso é chamado como protocolo de comunicação, faz UDP, protocolo de datagrama do usuário. Também é denotado desta maneira que é sublinhado ins e este solo, que é o que o diagrama. Então, o que é isso que você venceu como User Datagram Protocol. Então sim, não, toda a mensagem será corridos de uma vez. Isso é quanto comer no caso do usuário dado ponto de entrada. E não é confiável. Porque o poder não é confiável porque suponha que ele está enviando os dados de um processo para outro. E suponha que C nove descendo algum dia dados de servidor de janelas escuras não sejam pacotes formais. Isso é num bytes. Se alguns dados são perdidos no meio de, embora nenhum deles conjunto de OK. Nesse caso, isso não entenderá como qualquer perda de dados do cliente para o servidor, e também o cliente não será o mesmo dia danos perdidos. Você pode entender como funciona. Não é confiável em tudo porque ele tinha mesmo se o pacote é perdido, então um para que o cliente não vai novamente, San Diego disse O que? Você esteve a bordo que também coletou o item do questionário para realmente que esses pacotes são perdidos. Então isso é chamado de não confiável. E, no entanto, é sem conexão porque não há nenhuma conexão que eles amaram realmente não vai se conectar realmente para o lado. Mas todos os pontos de nó sobre este protocolo de datagrama de usuário. Porque eu debater realmente a razão disso, este cartaz, enquanto ele não vai ter os Borden que fazem sem conexão na verdade, portanto, isso reduz o seu tempo realmente que nos ordenou em alguma conexão. Outra coisa é que o pacote é grande, não enviará um feixe. Portanto, esta é também uma coisa que irá evitar a sua tarefa, na verdade. Então, megacidades nele é um peso leve porque ele não faria tal tarefa na verdade. E também não faz a verificação do editor. Então é que os pacotes de metal são perdidos do que não tinha sido novamente, lixado. Ele não vai fazer conexão com o editor. São simplesmente as mensagens. Ele não vai querer que realmente acima da perda de pacote e não há nenhuma conexão. Então todas essas coisas, quando você considera cunhado como um peso leve porque todas as estrelas, ele evitar seção. E também não é confiável. Mas fornece radiodifusão em caso de UDP. Então exemplo, o exemplo ao vivo de UDP eu posso dizer-lhe é o jogo multiplayer luz. Eu não fiz o que acontece realmente nos dados de envio de cliente para servidor, então esses dados não serão areia. Na verdade, a razão realmente incase do jogo noturno multiplayer porque isso vai, isso irá evitar realmente que a interrupção ou ampla este backlog realmente estão novamente enviando o remetente da mensagem que recebeu por este humor ou afetar o jogo se ele é leve. Então, para evitar tais casos realmente usa por UDP porque ele não envia o pacote. Novamente. Mas no próximo slide, vamos ver o que é este protocolo de controle de transmissão TCP que é denotado por meia e o fluxo escolar. Então Yarn menino cartaz, ele vai enviar e receber os fluxos de bytes de arbitrariamente chumbo. Assim, os fluxos serão enviados diretamente do remetente para o receptor, do cliente para o servidor, ou vice-versa. Assim, a comunicação pode ser de solo escalado, nove, vice-versa. Melhor, mas falamos sobre essa programação de soquete. Pode ser de um, de remetente para receptor, de receptor para enviar ou assim eu sonho com os bytes pode ser enviado realmente no caso deste TCP e andar por Platão pipe você pode ver e todos os conselhos para deixar no arquiteto e entregue em ordem. Então, uma vez que este TCP ser vê-lo como um confiável, porque ao apoiar o óleo, mais velho pela instabilidade no formato correto vai ser transmitido do remetente para o receptor, bem como a ordem realmente do pacotes. Então é oposta. Todos os dados são divididos em pequenos pacotes. Pacote um, pacote dois, pacote três do centro, ele será enviado para o receptor. É de cliente para servidor. Assim, no receptor que não é dito se ele será o mesmo na mesma ordem de seqüência e a ordem em que ele estava sendo enviado do cliente ou do centro. Portanto, é muita confiabilidade. Além de falar sobre este ECP, perda de pacotes transitórios em massa da Adobe, é bacause. Por isso, não configurem a ligação e a manutenção. Portanto, não há definido em um fecha ou visita, a conexão ou as quebras de conexão. Então é muito confiável, na verdade, algumas fotos perdidas. O outro lado vai ficar a saber que há uma perda financeira. Assim, também é confiável porque se alguns pacotes são perdidos, novamente, os pacotes podem ser transferidos do remetente para dias. Contas a receber. Um peso pesado, na verdade, porque todas essas tarefas que precisam fazer precisam reenviar os dados dos dados é perdido. Em seguida, ele precisa fazer o editor verificar que ele envia um dado atual para que ele tem que fazer isso enquanto verifica o erro e corrigi-lo. Então, só começa foi associado a este TCP. E, portanto, é um pesado. Portanto, ele não suporta radiodifusão e é menor do que o UDP. Você pode entender por que TCP mais lento porque ele faz esta tarefa realmente verificando o erro de retificação voltada para o envio da proposta, ele, fazendo uma conexão através do receptor, todas essas coisas, tarefa, táticas, tempo. Portanto, é menor em comparação com o UDP, mas é mais confiável, mais preferido realmente dependendo do uso. Portanto, dependendo do uso, você pode usar TCP e você pode usar UDP. Então, quando você está usando local HTTP ou usando HTTPS, você sabe, sempre que você está visitando qualquer site realmente que é HTTP, usando HTTP cólon WW, bulldog vínculo lakebed, e nunca você dá, investir esse formato. Em seguida, este HTTP ou HTTPS que é mais seguro. Se você adicionar um HTTP. Então todos esses HTTP, HTTPS. FTP, protocolo de transferência de arquivos ou telnet. Na verdade, todas essas coisas realmente eles usam este ECP, que é o protocolo de controle de transmissão, e este é o soquete V6 na verdade, agora você estuda mais sobre ele. E também desde que MY dogged sobre HTTP. Então eu também vou explicar você na última palestra. Últimas palestras realmente vai ter a programação realmente de HTTP usando o BCE. Então, mesmo que não era C. Então simples comunicação cliente servidor usando ECP também vamos ver outro programa pouco prático de distribuído usando o PCP. Como eles se comunicam realmente como o navegador se comunica com o servidor Apache, como essa comunicação acontece. Http Slovak nove ou se TCP. Então todas essas coisas, vamos cobri-lo. Então, não se confunda. Se você, se eu falar sobre este domínio e são silenciados MOOC passo a passo. Então vamos ver, na verdade. Então eu espero que você entendeu o que é este PCP e o que faz este UDP mover para o próximo slide. Agora, este conselho, assim também a coisa que eu mencionei no meu slide anterior que os homens decidem quando eu estou jogando me comunicar se eles estão tendo o mesmo socket pipe e o mesmo domínio de endereço. Então tipo de soquete você viu soquete de fluxo. cliente do servidor deve ter um soquete de fluxo para se comunicar uns com os outros ou eles devem ter sentido que ambos devem ter o soquete de datagrama para se comunicar entre si, bem como eles devem ter o mesmo. E há um domínio na verdade ou dominó independente ainda significa que ambos devem ter em um inacreditavelmente, ou ambos devem ter unidades para mim. Então agora voltando a isso. Está bem. Sim, este aqui. Então decidir pelo cliente final, na verdade, durante o aplicativo de rede de soquete, você tem comportamentos diferentes. Mas o modelo geral para criar um streaming CQI, PCB, servidor IP e cliente. Então o que tudo isso descreve é que dizer que o satélite implicando na verdade nós temos que desenvolver o soquete para ambos. Nós vimos isso em um muito do seu lado também. Será que eles têm tomadas diferentes e diferentes? Na verdade, se você quiser se comunicar entre eles, são necessários aplicativos Gaddafi ou tomadas de defesa. E ambos, e eu estou criando o soquete na verdade. A segunda coisa que foi a criação do método de soquete, na verdade métodos ou sedimentos na criação do soquete do cliente será o mesmo. Então isso pode até começar no próximo mês. Visite métodos realmente diferentes que são usados enquanto o soquete para comunicação cliente sedimentado, vamos ver formando esses elemento de trabalho ocorreu psi u, e desta forma você prosseguir. Então vamos ver este lado, rede webinar que são usados para seus métodos de servidor de soquete de defesa e diferentes métodos de rede cega soquete soquete. Agora vamos ver. Agora também neste métodos e fingir que você não estava tudo ocupado trimestre quando máquina objetivo, que papel está presente para máquinas Linux? Então apenas engendrar para falar. Na verdade, esses movimentos de rede ocorre que está listado para o satélite. Na verdade, soquetes são quase semelhantes e, na verdade, bastante janelas e nariz pontiagudo. Apenas Manon construiu um para APIs não é. Os métodos não estão presentes. No caso da lista Unix, todos eles ao mesmo tempo estão presentes no KSR Unix. Então vamos ver. Então este lado soquete onde os métodos de rede que são usados. Então, o que significa estar fazendo e nenhum lado evitou site realmente para criar o soquete. Na verdade, no caso do Windows. Então janelas, temos que inicializar w. Vou explicar o que é uma justiça. Estou dando a vocês a visão geral do que, quais métodos realmente usando a discussão detalhada na próxima sessão realmente vai isso e eu explico como, o que é WACC, como inicializá-lo. Então isso é usado para, este método é usado no caso do Windows. Portanto, isso não é usado no Linux. O próximo momento que nos seduz métodos lado a lado, que é uma vigília tinha listado aqui. O próximo método é criar o socket para este WSDL inicializado e supostamente ser feito enquanto as janelas não incomodá-lo um Linux. Mas criar um soquete é generoso. Então, todos esses métodos que estão listados é geral tanto para Linux como para um minuss. Então, criando um soquete, na verdade seu grau em um soquete no lado do software, temos que ligar o soquete. Então agora este fichário ouça, aceite todos esses você inexplicado em palestras de Nevada que são dedicadas a manter ação de explicar quais métodos estão presentes. O que eu vi foram oito e que todos os parâmetros? Sim. Opondo-se a passar para ele. Qual é a funcionalidade de cada um deles realmente para a comemorar como site Melissa Klein. Então, terminando o soquete, então, mas eu expliquei que Panamá disse quando ele tomou mentira, como comunicar os dados off-line. Então, por que não deve ouvir um número de porta específico, um endereço IP? Ou seja, você vê isso, vincular, o soquete significa que temos que vincular a determinado número de porta. Indo com real explicado em detalhes na próxima palestra. E ouça aqueles fora da vitamina B, ouvindo naquele soquete, uma vez que ele é ligado ao número de porta particular, é qualquer deslocamento no endereço IP. Ele está tendo um endereço IP. Ele vai ouvir naquele soquete que está comprando para decidir o que ouvir. E então ele simplesmente conectará aqueles, que cegueira E conexão, então ele sairá da conexão. Portanto, ele tem que fazer essas tarefas realmente antes de aceitar. Ele tem que ligar a um determinado número ODE. Tem que ouvir o número da porta e explicar em detalhes. E então tem, então é, é um bloco aceitando essa conexão, e essa conexão é aceita, então é capaz de enviar os dados para o cliente e receber os dados daquela mina. E outro método é último método é desconectado nos perdendo realmente a conexão. Então esses métodos de ordem, esses todos os processos acontecem em olhar na calçada do lado de fora, todos encontrados na funcionalidade que temos que fazer na verdade. E rapaz, a extração das janelas é que temos de inicializar os riscos do Ws. Essas coisas são comuns ao Linux, bem como o Windows completando soquete para desconexão. Bem, não, vamos continuar a entender para ver quais métodos existem para o lado do cliente. Novamente, a mesma coisa. Temos que inicializar Ws no caso off-line referido também. Então este é o PNUMA no Windows, não é aplicável para Linux. Temos de segunda coisa, temos que criar um soquete vendido streaming. Eu conheço a criação de soquetes. Temos que fazer o que o cliente, bem como para o servo, uma vez que estes são os diferentes processos de aplicação deixando-lhe diferentes soquetes diferentes. Criado de fato por, como eu disse, quatro, disseram: O que eu vou comunicar? O soquete deve ter o mesmo tipo de dados de soquete. Vimos o tipo de soquete. Na verdade, pode ser visto, pode ser apoiado por Akos. Na verdade, temos visto os tipos de soquete de fluxo. Você tem amigos seniores, transmita doc socket. Ele deve ter qualquer soquete de fluxo em qualquer datagrama comprado. O cliente e o servidor devem ter o mesmo socket na verdade. Então temos que criar um soquete. Então você pode ver em palestras realmente como criar um socket, como dar este domínio ocupado ou concorrentes. E então você entenderá, então temos que nos conectar. Então, como eu lhe disse este esboço, a regra é apenas conectar-se com a alma vai saber como se conectar com a energia solar. Porque já o lado dele está vinculando a determinado número de ordem e ouvindo esse número de porta. Então, com a ajuda de que só embora eu sou vai se conectar ao servidor. Então não se preocupe com todas essas funcionalidades. Só estou te dando um “O que você faz “? Vamos discutir, você verá na próxima palestra que é dedicada a todas essas explicações macro. E, em seguida, enviar e receber a demanda tal corte através da salva que escapou tinha sido enviar os dados, bem como receber os dados. E depois o último. Então estes são outros métodos para aqueles e para o meu site. Então veja, na verdade, esses métodos. Agora terminamos com os riscos de soquete. Então, o que todas as coisas que Stephen está começando? Isto é apenas um nulo. O que você realmente evita tópicos que estaremos cobrindo na verdade, em nossa fileira. Vamos cobrir o modelo OSI, que é o modelo de interconexão de sistema aberto. Isso vai estar estudando, este é um modelo de referência de netbook. É muito importante. Ele é chamado de diagrama de bloco em camadas de rede ISO lhe dará a visão geral de todo o sistema de rede. Ele simplifica, na verdade, suas redes rodoviárias é sistema de rede complexo em diferentes, componentes diferentes e descrever como esses componentes se comunicam uns com os outros disciplina ParaView. Para também se livrar do problema faz ou você vai entender como um dia enviar realmente segurar os dados enviados do remetente para o receptor e vice-versa em diferentes, processos diferentes, na verdade de forma diferente por diferentes, diferentes camadas Bode diagrama. O que todas as coisas eram ponto O alelos vem em conta. Quais são os diferentes exemplos, protocolos facilmente ou usos. Então isso, eu simplifiquei de maneira muito fácil, na verdade. E isso é muito importante para todos. Estudantes universitários. Limites de pensamento para desenvolvedores, bem como ele irá limpar seus conceitos básicos simplesmente para falar sobre isso. No próximo tópico, que eu vou estar cobrindo a linha da calçada e ir soquete APIs. Desde o que temos estudado aqui coincidem disponível para janela. Então foi um lado do cliente para a comunicação que vamos estudar nesta palestra, você estará afundando na Guerra Fria. Mas ME faz o que todas as funções são usadas em detalhes. E então vamos estudar o que é dito sobre o método de soquete Linux linha. E então nós construímos um programa para PCP, disse sobre comunicação de nove soquetes no quadro, mas você estará escrevendo o programa para se comunicar. Entre o arquivo forçado amigo usando este protocolos TCP têm de mente e vamos ver como eles se comunicam, como servidor se comunicar com Ty e ajuda. Vou enviar uma mensagem para o servidor. Como quer que responda a essa linha. Então isso, vamos fazer o exemplo prático, certo, mas programa um por ID e vamos executá-lo. Então, a próxima coisa, que será outra coisa que eu pensei, na verdade, isso é muito importante. Então essa é uma razão pela qual vou cobrir com o seu programável. Então, desde que eu lhe disse o que é HTTP, ele usa TCP. Então, até mesmo ver este programa na verdade, vamos ver o que faz HTTP e a programação do STDP, chamado ID de bloco de encore. Então você pode entender o que é o site HTTP do outono. Então você vai achar mais interessante porque o dia-a-dia. Agora a internet está se tornando tão comum a todos vocês que estamos acostumados a isso realmente ser ter simplesmente algo que temos que encontrar realmente estar disponível através da Internet. Soldados de Aquiles sempre têm essa coisa que você vai estar ciente do que é HTTP? Basta dar dois pontos HTTP ou nome do site na verdade, que você deseja visitar. Level explicou como o navegador se comunica, como o que quer que você dê o nome do site realmente em seu navegador, que ele é um navegador Chrome, navegador Internet Explorer. Como ele fala com o robô realmente idiom como ele obtém os dados e como você chega lá. Guitarra, em seu nível de aplicação, você escreve o programa realmente com a ajuda do conhecimento que estudamos, a palestra criadores, identificá-lo como muito fácil. Uma vez que você só tem que começar, você tem que escrever o programa comigo. E você vai entender a lição embrionária sete, dado o que eu bloqueio, bem como tomadas não-locais. E vamos escrever um programa e executá-lo para compreendê-los muito melhor. Na próxima palestra, vamos ver como alcançar a comunicação de soquete de servidor multi cliente. Então ninguém forçado a ser abordagem doente usando o fio. Para que eu diga que todo mundo disse uma peça usando isso. E vamos vê-los um por um. O que há, a fim de evitar essas abordagens pessoa desfavorecidas , a fim de alcançar uma comunicação de soquete de servidor declínio. Então, aqui eu dividi a interdependência e palestras, a fim de entender como alcançar minha comunicação de soquete do servidor recusado. Portanto, há duas abordagens. Assim, nesta palestra, seremos vistos pela primeira abordagem, ou seja, usando a função select. E vamos ver qual é a função select e como você a usa, o que todos os seres humanos são necessários. Desta forma, você vai ver como ele traz minha comunicação declina soquete. Então esta palestra é dedicada a isso. Em seguida, estaremos escrevendo o programa na próxima palestra, o programa usando a função select. Então, aqui nesta palestra vamos estar entendendo o que é selecionar função, como você usá-lo. Na aula nove, estamos escrevendo um programa e usando a função select no sistema operacional Linux. Palestra dez. Realização recusar a comunicação do servidor usando a segunda abordagem. Então, mesmo que a segunda abordagem é fazendo com que o soquete não bloqueie. Então vamos ver como fazer soquete não está bloqueando. O que todas as funções são usadas e quais são os seres humanos são necessários. Assim, com esta informação na palestra, em seguida, vamos prosseguir mais ou palestra lemma que um novo escrever os programas e será executá-lo usando a segunda abordagem, fazendo o soquete é não-bloqueador. Desta forma, vamos ver como alcançar minha comunicação de soquete de servidor recusado e um sistema operacional inverso. Em seguida, a última palestra, veremos o aplicativo ou soquete. Nessas áreas, servidor de soquete, cliente são usados e estaremos afundando dentro exemplos do mundo real que todos os servidores de soquete são usados. Então todas essas coisas que mencionei que vamos cobrir, e eu fiz você percorrer todas essas idéias dominantes, o que todas as coisas são necessárias para o soquete. Então VI feito para a primeira palestra de nossa competição soquete escola V6 próximo BOD POD, esta palestra que eu mencionei na verdade, isto é, então este modelo OSI, modelo referência de volt líquido, mais denso, multiplicando todos estes coisas que você estará cobrindo passo a passo. Então, obrigado. Muito obrigado. 4. SocketSession3 Part1 TCP SocketSession3: Oi, bem-vindo à segunda sessão do curso que é arquitetura TCP IP, que também é chamado como todos como eu modelo. Dag é modelo de interconexão de sistema aberto, também chamado como modelo de referência de rede. Isso lhe dará a visão geral do sistema de rede, explicando como esses componentes se comunicarão uns com os outros, como ser transmitidos a partir do remetente, receptor e este meio básico, seu soquete descompacta DM, Então rede. Então vamos entender essas redes e vamos entender como se tornar negate. Então você terá uma imagem geral do soquete e seus componentes internos. O, Vamos começar a sair do BC, ou um desses tópicos que é mencionado neste slide, ou seja, o que é modelo OSI e a importância dele. Diagrama de blog do modelo OSI B. Em seguida, uma discussão dos componentes desta arquitetura ilustrar, ilustrando a comunicação destes componentes uns com os outros. E, finalmente, veremos o exemplo do mundo real para ilustrar este modelo OSI, para ilustrar como esses componentes de rede se comunicam uns com os outros. Esse é o modelo OSI, que também é chamado de arquitetura em camadas de rede. Essa é também a arquitetura TCPIP. Então vamos começar com minha mãe e entender esse sistema de rede, como esses componentes se comunicam uns com os outros. Então, o que você faz no próximo slide? O que é o modelo OSI? Então OSI significa interconexão de sistema aberto, que também é ido rede com modelo de referência. Então este OSI, ele lhe dará a visão geral de todo o sistema de rede. Então é um óleo é simplificar o conceito de rede em pequenos e pequenos componentes de rede e descrever como esses componentes de rede se comunicarão uns com os outros. Então isso é muito útil para ele. Ou as técnicas de rede Jian Wu solucionam o problema de rede porque simplifica esse negativo quando eles estão esperando sistemas e fazer pequenos componentes. Explicar como é a arte de se comunicar uns com os outros. Para que seja qual for o seu problema, você pode solucionar qual camada esse problema ocorre e você pode sair. Então é assim que simplifica. Então isso é o que eu descrevi neste slide. O outro ponto é que o que eu mencionei anteriormente apenas fornecer-lhe a visão geral de todo o sistema de rede, mas também simplifica o problema do técnico de rede. Quem não é problema preocupante referindo-se neste modelo OSI , consiste em sete camadas. Esses são os sete componentes como ver quais componentes estão presentes. Embora componente muito superior abeliano, que está presente neste modelo OSI é a camada de aplicação. Então este detalhe que eu descrevi para você, não se preocupe, eu vou explicar. Qual é o aplicativo perto do que está presente, todos esses nós um por um. E nós vamos ver também que protocolo e status conjunto de balas todos esses Leos estão usando. E mais tarde também veremos como o modelo OSI vista em sincronizá-lo com o exemplo prático. Vou explicar o exemplo do mundo real. E eu vou explicar como esses Leo estão trazendo os dados do remetente para o receptor. Na verdade, exemplos de compreensão humana. Então vamos ver. 5. Sessões de socket 3 Part2 TP de arquitetura em camadas: Esta é uma camada de aplicação que é muito superior. Leo, em seguida, é a camada de apresentação, Sessão, Camada de transporte, LEO de rede, camada de link de dados e camada física. Então todas essas coisas que eu descrevi aqui com os exemplos na verdade, mas vamos ver um por um. Você pode passar por isso mais tarde e se digraph, Isso é arquitetura. Então vamos começar com isso mais cedo. Isso é um acordo de candidatura. Então, o que faz esta aplicação? Assim, ele fornece a interface do usuário. Então, simplesmente falar uniformemente sobre o aplicativo que você pode entender aplicativo é o único que irá ajudá-lo. Passo um, usuário arbitrário irá interagir com. Por isso, ele irá fornecer-lhe a interface do usuário. Então, qualquer ação que você cair, cair sobre o aplicativo que será refletido, então ele vai atingir o menor Leo do topo Leo. Então você usa a necessidade de fazer alguma ação, a fim de obter a resposta apropriada. Assim que a ação que é feito, é feito no componente do aplicativo que está presente. E isto é, que é o que sobre exemplos de aplicação Leo ou FTP? Não, FTP é usado para planejar se phi. Então dez net também, você sabe, nós temos que conectar aplicativos de e-mail ou outros aplicativos. A ordem é definida. Em seguida, a próxima camada, que vem como uma apresentação, O que faz esta apresentação Leo? Então, nesta apresentação, Leo, o que quer que eu sou movimento ou conversão de dados é necessário neste aplicativo terá lugar na apresentação Leo. Então simplesmente decidir descrito aqui também. Ele é usado para o formato dos dados. Assim, você pode compactar ou descompactar, criptografar e descriptografar. Mas Gita, uma vez que a deconvolução do estudo é necessária, portanto, é a forma de administração sob Deepa virá 50 empresas e grupo paraolímpico. Ainda assim, seja qual for a formatação dos dados estarão ocorrendo. Qual aplicação ao tomar esta apresentação, Neil e a outra criptografia de dados ocorre, bem como seita de caracteres e não foi explícito. Então exemplo também lá. Então JPEG, PNG. Então você sabe, estes são os hormônios também seu formato fixo. Então estes são diferentes, tipo diferente formato mais antigo. Então você pode entender este exemplo em si lá para criptografia de dados ocorre dados e viagem e ocorre no caso de JPEG PNG. Sim, estes são formatos diferentes. Então, quando falamos sobre o formato de dados e esta camada de apresentação entra em uma arma. Então não se preocupe, vou explicar o exemplo do mundo real depois de explicar essas camadas. E você pode sincronizar com todas essas notícias. Isso é apresentação, aplicação em óleo e desta forma até mesmo entender o que realmente, então, o que é sessão NEA, camada de sessão, ele vai escrever o próprio nome, diz que é a conexão que você pode entender. Então ele abre e fecha sessão com a boca da empresa, por isso é responsável, mas abrindo a sessão para controlar a sessão, encerrando a sessão que pós-doc remoto é feito na máquina de guerra. E então esta sessão, o OED na verdade, então esta sessão, qual dos deadlocks que mais, quem sabe que é uma conexão que Richard desenvolve com a conexão virtual remota. Então foi massacrado pelo próprio nome. Você pode entender que não é conexão real realmente precisa de alguma conexão virtual. Isso é estabelecido, assim também descrito como uma conexão de transporte menos ou sem qualquer comunicação de rede. Então você pode entender que um antigo existe, mas sem qualquer comunicação de rede. Então, portanto, o nome observando conexão, em seguida, o exemplo da camada de sessão são dadas, explicado você realmente, isto é, que irá ilustrar usar todo o aplicativo de e-mail. Então, no papel da maneira de aplicação humana, temos que enviar qualquer host remoto engraçado Buda. Temos que transferir o Pine para o hospedeiro remoto. Então, o que acontece em, embora bastante pré-estabelecido, houve apenas um projeto de lei CBO enviar os dados para a sangha de contar a informação sobre o quanto os dados são recebidos agora. Então é um pequeno intervalo sempre que o arquivo está sendo transportado. No caso do e-mail para o host remoto, esta conta a receber informa ao remetente quanto os dados estão sendo transportados. Agora. Então isso acontece em pequenos, pequenos e governos e 3h assemblage e duplamente supor entre ou conexão agulha se perde de lá para baixo. Para que não tenhamos discutido acima ou abaixo desta camada de sessão que é uma marca, que é uma camada de transporte. Então denotar temos discutido sobre a apresentação do aplicativo e sessões de conversação nomial. Então, abaixo da procissão, perto daquela camada de transporte. Então, se a conexão da camada DOM, que é camada de transporte, ele é perdido, então o que vai acontecer nesse caso? Nesse caso, a conexão do vigia será existente. Então o que você vai se conectar não vai se perder. E um inversor, nesta sessão, a auditoria recebe uma nova conexão de transporte, depois enviando os dados. Mais uma vez, currículo extra do Reddit foi interrompido anteriormente. Então isso eu mencionei que ele também basicamente a sessão de controle e fechamento de abertura. É feito pela camada de transporte que é para baixo para esta sessão. Você pode entender o que é a sessão perto da coluna vertebral precisa ser corrigida ortografia. Agora. Então, quando falamos sobre a rotação de Euler via então agora falando sobre o DownloadActivity, pensando com a sessão, também desenhamos sobre o que é a camada de transporte. Camada de transporte. Ele irá transferir os dados pelo próprio nome. Você pode entender, e ele tem um embutido, azul-branco, qualquer conexão entre o host. Assim, ele irá transferir os dados e fornece conexão de ponta a ponta entre o host. Então, esta camada de transporte, na verdade, você pode ver a conexão entre tablets entre o host pode ser confiável, que é uma ação ou pode não ser confiável. Eles estão desconectando aquela alma. Espero que assim por este confiável e não confiável, você pode estar entendendo que vimos nos relatórios pesquisando sobre TCP e UDP, conheceu e B viram PCPs confiáveis. Europeus, não-preto não é confiável. E nós também vimos que o TCP é confiável porque é, ele irá garantir que na verdade todos os dados são. Para o receptor corretamente na ordem correta que ooh, se algum botão eu posso desalojar, centro irá notificar o receptor e novamente os dados podem ser transmitidos. Então previsões editor também desde que é pesado nível porque todas as paredes de madeira na tarefa uma correção de erro para enviar os dados se o pacote é perdido e desenvolve uma conexão. Então, todas essas coisas acontecem no caso de massa TCP é uma conexão confiável. Vimos uma conexão pouco confiável. Ou seja, que é UDP não teve erro, correção será banida. E não é o, é melhor a bordo que, mesmo se um pacote é barulhento, não enviar dados e não notificar uma vez que você faz isso, um CBO. Então aqui é muito leve. Então todos esses pontos que discutimos, toda essa camada de transporte com a ajuda de suas famílias porque estão ligados uns aos outros. Você pode ver quando eu falei sobre a sessão perto, Eu estava aqui era o que estava andando com este DOM perto camada de transporte. Ok. Então agora porque eles estão se comunicando uns com os outros, nomear conversa sobre transporte aqui. Ninguém que inventou sua pensão que a rede Hale-Bopp aqui. Então, isso é novamente lá w. Então esta camada de transporte com a ajuda deste magneticamente ordenou seu próprio endereço IP, e ele constrói dados Sander. Então, embora widget de dados recebe camada de transporte de vigilância, ele recebe da camada de sessão realmente ele, com a ajuda do download que os dados, ele irá abordar os dados. E assim o exemplo que eu lhe disse é conexão de dados TCP um e UDP é conectionless. Então a próxima camada que está presente é a camada de rede, que é o descendente através do transporte aqui. Então, o que essa rede Leo? É que é rotas que é ramping significa dar a sua direção. Então, sim, DO pacotes de dados em detalhes Transporte esgotado significa dar a direção a esse pacote para qual caminho ele deve estar viajando, esse pacote deve estar viajando, então ele será arredondado. Os conjuntos de dados darão sua direção, darão o pacote RP a partir de um caminho, ele deve viajar ao longo descendente para a política, mas que esta rota, então ele irá, ele irá, ele irá, ele irá novamente remontar os pacotes de dados porque ele envia um pacote dos dados, um poucos pacotes de dados do remetente para o receptor, site CBO, ele irá remontar, ele irá coletar todos os dados juntos. Então, isso é sobre a visualização de rede. Assim, o objetivo principal desta demonstração nuclear também é abordado os pacotes. Então, foi fornecido o endereço deles para o pacote, certo? Que esse pacote entenderá realmente por qual caminho ele deve percorrer. E através da internet, pontes locais e tio e exemplo é IB. Então eu também entendi isso. Então ele vai rolar é realmente dar direção para o pacote que está ramping, nome remontar o pacote dos dados. E seu objetivo principal é dar o endereço ao pacote para que o pacote entenda por quem eles devem passar. Internet, pontes locais e exemplo automático é IP. Então, a próxima camada é lá camada de link de dados. Então, o que faz a camada de link de dados? Ele faz, na verdade, por isso é também a próxima camada de driver usando. Porque pelo Dr. Willard, porque também negligenciará a arte é hidrostática. Este é o principal guia de rede que através do qual você alcançou a internet. Então, este é o nosso dispositivo através do qual você consegue e coleta. Então é isso, nosso Leon não é um dispositivo, uma rivalidade no deserto é uma rede tribal e porque ele vai controlar a placa de rede, ok? Agora, esta camada de link de dados, eu preciso do pedido competitivo como duas ou mais negatividade ou usa soul, já que ele vai controlar a placa de rede que teria sido uma conexão águia e refrigerante. Então eles nunca são essa ou mais camada de rede neural que está usando a mesma rede responder seu não-equity mais antigo presente no topo disso, o que nós discutimos agora. Então, faça uma palavra, rede. Ele usará a mesma placa de rede. Então, como essa gerência quando para a Casa Branca tiver acesso ao guarda da rede será que é apenas o meu pescoço e cartão de rede. Mas como esse excesso de dinheiro fornecido para a camada de rede que está presente e Egito e puxando esta camada de link de dados. E assim ele, eu não também o endereçamento físico da rede e a ação ocorre. Ele também consistem lei outubro sobre a desordem terá descrito para que você deve estar sabendo cada e tudo sobre o CEO. Então ele vem como a topologia há topologia de internet. E ele também é usado, ele também usa são mais comumente usado dispositivo de rede, ou seja, se usa switch. Então isso é tudo sobre a camada de link de dados. Também o italiano claro que consiste em dois sublimes, não é? Tão amplamente otite, controle de acesso de mídia, que é mac sublayers do que faz este Amaterasu, É responsável pela interação do dispositivo. Isso eu mencionei o seu dispositivo de detecção de rede. E o segundo é W em que faz Dayton no Kansas, é ligação lógica Leah, de repente. Então esta camada de link lógico, ele fornece multiplexação e endereçamento sobre ele. Embora estamos multiplexando significa o quê? Isso significa. Ele vai, são agora, pode aprofundar e caminhar através apropriado por que as pessoas existem em diferentes redes multi-ponto. E também pode ser transferido, transportado, ou se o mesmo meio de rede. Isso é o que sobre a multiplexação? Então, um exemplo desta camada de link de dados, se você ver será a fonte de massa e endereço de destino, bem como a chama eterna. Então não se preocupe com tudo isso. Escritor técnico, poeta está rabiscando. Eu espero que você entendeu, apenas entenda. Passando pela parte da rede, ele é usado para atender um anjo conexões quando eu estou quando as pessoas conexões da camada de rede usando a mesma placa de rede, ele irá gerenciar essa conexão e loja fantasia dois coisas presentes em nossos devedores, MAC e LLC. A revista de controle de link lógico de um baile é divisivo que a ação e isso irá fornecer multiplexação e endereçamento. Então seus detalhes sobre isso, eu vou explicar que você envolve o exemplo do mundo real, que eu tenho um monte de público, esses líderes, eu tenho coberto o exemplo do mundo real e eu sou explicado detentores, estes Leo, a sincronização realmente o que eles vão fazer quando eu estiver em que exemplos do mundo real. Então você vai entender o que exatamente esses Leos são móveis. Agora, a última camada é o alelo. Então esta camada física, também é chamada como se fosse uma rede. Também não significa que Hyderabad realmente traz a rede que são diferentes formas de ouvir falar dela. Pode ser também os cabos de rede que não tinha ouvido e tudo mais. Então, todos esses conceitos são físicos. Sim. Então, obrigado. Muito obrigado. 6. SocketSession3 Part3 TCP OSIModel SocketSession3: Olá, bem-vindo a esta segunda sessão, Parte dois para este modelo OSI que é a arquitetura TCP IP. Então, na verdade, na mesma sessão eu tenho discutido sobre os sete Leões, que traz o sistema de rede. Então, como esses componentes, quais são essas camadas responsáveis? E como eles se comunicam uns com os outros. Então, nesta palestra, estarei explicando que ele e Deus exemplo. E eu vou estar explicando como esses sete vídeos da Rede Leo rolando os exemplos de veleiros para que você tire uma foto como esses componentes de rede do Leo um dia eu tinha e como eles se comunicam uns com os outros. Então vamos ver isso. Então aqui estaremos estudando os exemplos internos como este. Eu simulo um único pedido de comida. Então, sim, o cliente não vai fazer não através de sua rede e fazer um pedido com um IPO. Em seguida, vamos considerar que os clientes do cão chamando feito em ambos em sua distorcida e colocar um pedido e que a pessoa sabe, engana isca eo cliente se comunicou com os detalhes do pedido o que o cliente quer. E a pessoa de entrega, então, vai para o endereço de um estimulante e vai estar entregando comida. Então será para ver como esses Leo desempenham um papel neles. Então vamos ver um por um. Então, aplicação de massas, Leo. Então Vannevar estrelado está enviando um formulário para sílica estoma está interagindo com o chifre realmente se comunicar nos detalhes da ordem. Então sim, o aplicativo para que você saiba, o que é a camada de aplicativo sempre que isso é uma indireção, ele permite a interação do usuário, dependendo desta ação, ele estará respondendo. Então, a ação é que o cliente está fazendo uma chamada telefônica usando o telefone para fazer o pedido. Então isto é, isto, a camada de aplicação vem em conta e o protocolo associado a ele são HTTP ou HTTPS, então esse FTP, como eu disse, está vazio. Então, todos estes são os protocolos que vem nesta camada de aplicação refrigerante, cliente, usando o telefone para colocar um pedido de aplicação intempestiva. Leon, vamos fazer essa interação com o porto. Então, em seguida, vem a camada de apresentação. Então, o que esta apresentação o IB estudou na palestra anterior, o que ela faz? Ele faz a forma que eu penso, dos dados. Então ele vai fazer a criptografia de dados. Assim, evitou a formatação necessária para um aplicativo e ser feito nesta camada de apresentação. Então, o que fizemos? Blastocoel ou o comando que recebe da camada de aplicação de policiamento. E na parte de trás, ele estará descarregando o evento EVA humano fórmula não-rede. Então, o que isso significa? Significa que a definição significa que ele reportar em algum formato particular que você disse. Eu entendo. Portanto, este formato deve ser comum a eles. Então aqui Da mesma forma no caso de exemplo também sempre que o asteróide um foo, eu vou obter dos detalhes da ordem como supor que o cliente queria encomendar algum nada. Então ele tem que se comunicar com aquele restaurante pessoalmente. A língua que nenhum cliente utiliza para comunicar a esse encargo deve ser a linguagem comum. Ou seja, deve ser universal, deve ser conhecido por eles. Então essa é uma razão pela qual ele será convertido para esse formato. Ele será convertido em linguagem perfeita. Falando. A pessoa falará nessa língua, comum a ambos. De modo que as misérias e esta camada de apresentação, é usado para desamarrados nesse formato que é compreendido por eles, a fim de embalar toda a comunicação adequada. Então, esta gengiva nesta apresentação perto do protocolo usado é o D. Então nós sabemos que as imagens em diferentes formatos, a data de volta se Pfam NGI dobrar em nosso HTML diferente, que é a página na verdade a página web, então o ascii relacionado a terceiros cadeias de caracteres. Então isso é sobre os protocolos que são usados aqui em caso de apresentação Leo. Agora, esta sessão, o que a camada de sessão postal cuando faz? Então, a fim de transferir os dados, que é um pacote realmente fazer o seu destino, esta camada de sessão, ele deve abrir o controle e fechar esta sessão que estão lá entre os processos de aplicação do usuário final são responsáveis pela abertura, controle e decisão de encerramento entre diferentes processos de aplicação. Então a Riot é necessária uma sessão aberta. Faça o host remoto, a fim de enviar dados para transmitir um pacote, ele deve passar sessão aberta, fazer esse host remoto. Então nós sabemos que esta sessão perto dos EUA e o que você pode realmente ter visto butanos e abuso através desta palestra ou esta sessão, segunda sessão. Então, se você este exemplo, Victoria Albert exemplo, por acionistas, clientes fazendo uma chamada telefônica e a pessoa do restaurante deve recebê-lo. Na verdade, escreva seu receptor para que o cliente possa se comunicar com esse receptor. Este distúrbio é morto e único, novo enviar este ordenado. Portanto, esta comunicação é necessária para que a receber novamente, a informação da ordem detalha o que toda a ordem que o cliente enfrentou. Então isso porque a razão da sessão, isso é muito necessário. A outra extremidade, ou seja, os apresentadores distorcidos receberam uma chamada telefônica ou para ter este protocolo de comunicação bem sucedido completo usado como RPC, você sabe, RBC. Nós temos, sempre que temos que vir se comunicar através da máquina remota , na verdade, então isso significa que você precisa desenvolver uma sessão entre a máquina remota. Em seguida, este RPC usado SQL também se comunicar com o banco de dados realmente para se conectar ao seu banco de dados. Sql é usado, Rede é um e funciona preços temporários um. E este X Windows é usado para se comunicar ou se eu tenho que obter máquina. Então isso é na camada de sessão vem em conta. Agora falando sobre a camada de transporte. Portanto, agrupe enquanto a camada de transporte é transformar os dados entre ponta a ponta. Pode trazer para fora a promessa de conexão de ponta a ponta. Havia o meio também o que esta camada de transporte, quando ele faz, ele, faz é, ele não só garante como os dados devem ser transmitidos, como se eles devem ser sem conexão. Auditorias devem ser conexão ou dados que é, TCP deve ser, portanto, um UDP antigo deve ser, portanto, coneccionista, pacote lateral inorgânico todo o seu único fornece nenhuma segurança fireball e validações e fornece uma segurança que é adquirida, por favor. Então você sabe, por N1 é usado para proteger seus dados. O pacote suspeito que é. O que é suspeito em algum problema com algum editor não será passado para o mais alto. Então eu preciso de um pacote válido será passado. Mas suporte suspeito, pacote não-chave, ele fornece o comprador quer segurança. Assim, ao decidir como os dados devem ser transmitidos, coneccionismo coneccional também fornece esses recursos. Então. Ele também trouxe lá ele fornece um controle de qualidade? Controle de qualidade no sentido. Então este tem pacote Espécies não será permitido passar através do fogo. E foi o problema retratado de Susan está lá no pacote. Portanto, ele está verificando a qualidade do pacote não é boa, não entrega através do firewall. Essa é a razão pela qual ele fornece esse controle de qualidade. Agora, pensando com uma placa de verdade, isto é, se a comida não é boa na verdade, que está sendo preparado é que eu comecei e tinha sido um RB entregar aos clientes. Portanto, esta espécie quatro não será permitida para ser entregue ao cliente. Pensando com um exemplo do mundo real. Então isso, como eu descrevo vocês, esta camada de transporte ancestral duas coisas, dois tipos, estatística, Cp. Aqui, ele decidirá que como os dados serão transmitidos. Ele estará tendo uma ação, é orientada para conexão. Também será confiável que, porque se alguém morre leis, em seguida, ele será notificado ao receptor também novamente, ele será transmitido editar que seção também estará acontecendo. E é assim que Holzer merece isca pesada porque realiza todas essas atividades. Então exemplo ou PCBs, HTTP, FTP, SMTP, atendido como no caso de UDP, é orientado sem conexão, vimos que não é confiável por causa de alguns pacotes são perdidos e não será notificado ao receptor. Novamente, ele não será enviar reset. E não incomoda que não tenha sido dirigido. Portanto, essa é uma razão pela qual não é confiável. E o exemplo de vida deste UDP está mentindo verticalmente ou jogos. Então esta é uma notação que é multi-jogador. Então, certo, ele não envia os pacotes que estão perdidos porque essa será a nossa interrupção. Nesta comunicação. Novamente, DWB, Senado WB algum dia será levado. Então essa é uma razão ou não. Acabou e, portanto, deve ser usado em comunicação ao vivo. Então isso é o que acontece no caso de UDP. Então este é um exemplo ao vivo. Agora falando sobre eles, Leo. Então, o que esta camada de rede que vimos primeiro tomou uma camada de rede. Temos visto na palestra anterior, fornece roteamento dos pacotes. Ou seja, ele decidirá em que direção o pacote deve ir, ooh, que caminho ele deve seguir. E então nós vimos, e nós também vimos que é responsável por enquadrar e montar os pacotes. Então, o que o pescoço multi-ano fornece, ele fornece o melhor caminho para rotear pacotes. Então melhor parte significa que ele fornece do que deve ser o melhor caminho para o gráfico de barras de nível de grupo, caminho curto. Antes realmente em ordem que o pacote deve ser enviado do remetente para o receptor. E que parte é deve usar, o que é um OK válido, então nesse ponto nesta bobina é uma rota s-bar os pacotes. Então, o que está feito ainda? O roteamento está feito. Dar sua detecção para o pacote caminhará auditoria adequada, e fragmentação é feita e remontagem ou pacote explícito. Vamos discutir todas essas coisas são Fido. Então agora afundando com o exemplo aqui, se vemos aqui, então a pessoa de entrega que estará entregando a comida para o cliente. Ele usa GPS, Google map de volta por aqui. Responsável por trazer os caminhos mais curtos visíveis comprados. Então, quem melhor mapa para brancos são muito curto, ponto mais curto. E é assim que se sincroniza com o mundo real, esta rede, verdadeiro Leo, BEC, e cantar com este bordado. Agora são os três passos de que eu vi o que, o que todos estes estão arredondando remontagem fragmentação. Então ele descreve aqui indicam postagens de endereçamento tão lógico. Então, sim, estes são os endereços virtuais. Para que ele será um endereços virtuais que irá decidir o que o destino do pacote comprado seria lá. Eu sei que terminei ou você manda um pacote? Esse pacote vai passar pela rede. Então vamos estar agora entre as redes. Então estes são os endereços watchin, que é o endereçamento lógico que levará o pacote para rotear através da rede para chegar a esse destino. Então, sim, IPV4 protocolo IPV6 ímpar é usado, então usa para simplesmente seus outros endereços virtuais, irão decidir qual destino estará lá para que o pacote irá rotear você não iria ler hoje e nós estaremos usando este protocolo. E assim eu posso processar segundo passo neste encapsulamento de dados Viterbi ou nosso encapsulamento verbal esses dados com a sua, com a fonte e destinos. Portanto, haverá endereços associados esta fonte de dados e destino porque, como eu disse, ele é usado para rotear. Ele dará o caminho foi para nomear quais partes devem ser relatados. E ele também verá que ele estará tendo um endereço de origem e destino também, para que os dados sejam alcançados através de seus pensamentos finais, fonte e destino. Vai afundar-se com ela. E depois de segmentação assemelhando-se assim aqui, estágio endócrino da entidade. Será em primeiro lugar, pontos de dados isolados, então ele será montado, e então nós temos que montá-lo. Então, simpatize muito entalhe. Assim, pode acontecer que o dia de um amarre todos esses dados agradáveis em locais não contíguos na memória. Então, o que fizemos? Será fragmentado. Ele irá coletar todos esses dados do eletrodo de localização de um computador. E ele vai coletar considerável Jiang viu o tamanho que deve ser motivo para. Dependendo disso, ele irá coletar esses dados que estão presentes em diferentes locais de memória e, em seguida, os dados serão transmitidos. Então isso é sobre fragmentação. E o protocolo que é usado aqui é, no entanto, que agora estão sendo protocolo de informação porque ainda bombeamento é feito na neve nesta camada de rede, bem como Open Shortest Path First, porque propõe que o caminho mais curto, este protocolo é usado aqui. Agora vou baixar seu SDK e incluir. Então isso é o que faz esses dados na Inglaterra, como vimos, é também bócio através da rede. Ele é usado para controlar a placa de rede. Ele é usado para gerenciar a conexão de humor Mordor. É da camada superior e essa é a camada de transporte. Esse é um dos negativos localmente ou para usar a mesma rede, então ele irá gerenciá-lo você viu na palestra anterior. Então, o que esta camada de link de dados fazer, ele garante que os dados serão transmitidos sem qualquer editor. Vai fazer essa parte. E também temos visto, Será que as respostas claras italianas falar com alguém que já vimos avanços falar logicamente controle e também controle de acesso à mídia. Vimos unidade e esse controle lógico que vimos na palestra anterior que é usado para multiplexação e endereçamento e mídia que é marcado como usado para hidro. Ele fornece conselhos e direção. Então essas duas camadas, o que David faz, Sebelius, que eles também vão fornecer o sucesso para a transmissão dos dados. Então todas essas coisas estão associadas a ele. Então ele tinha sido, tem este li e nós vamos ter o endereço físico Mac, que irá definir o endereço de destino onde os pacotes três. Então, o que faz o sistema endócrino, o endereço MAC. Vimos este ímã é uma ação física, endereço físico, que ajudará a pessoa que chegar ao destino. Portanto, isto é muito importante. Assim, o exemplo do segmento UDP é seu destino, endereço físico ou a pessoa de entrega do cliente. Sabendo que eu, a fim de ajudar a estimar alimentos. Então ele disse para procurar destino físico, endereço físico do cliente. Então agora o protocolo usado aqui é Ethernet e protocolo ponto a ponto. Eles estão agora indo para a última camada, que é a camada física de 70 ter visto placa de rede ou os cabos metro. Tudo isso vem sob esta camada física porque ele está ligado com a parte de rede de hardware dele. Então estes são os componentes. Tão obeso, o cliente que está alimentando comédia, comédia faria o pedido. E ele disse: Consideraremos nos tornar outro fisicamente na leitura do cliente, um dos quais. Então isso vem metafisicamente concordar através deste curso. Eu tenho sido baixo se você compartilhar suas críticas e avaliações como isso significa muito para mim. E quando me influenciou a publicar tais vídeos sob demanda como por sua exigência. Estou farto para esta palestra. Obrigado, muito obrigado. Na próxima palestra, estaremos vendo métodos de foguete janelas e método de soquete suficiente de modo a trazer a comunicação do soquete. Obrigado amigos. 7. Socket Session4 de Session4 parte1: Olá, bem-vindo a esta nova sessão, que é métodos de cliente de servidor de soquete para ser ambos. Então, nesta sessão, dado BC, os tópicos abaixo que ele deve, outros tópicos que eu tinha mencionado, vamos estar olhando para a configuração ambiental neste janeiro para ambos disse sobre soquete cliente M. Então este é o mesmo edifício Goleman Waterman Center necessário tanto para o servidor, bem como para o soquete do cliente. Então vamos ver o tópico adotivo ou seja, a mediana estaria discutindo os esforços da Garmin são as APIs que o servidor de coorte de janeiro e cliente. Portanto, existem três métodos que devem ser retardados da API apenas para hardware, bem como cliente para o sistema operacional Windows. Então vamos ver é três métodos. Você verá qual é o propósito desses três métodos e como eles são usados estará afundando no acorde. Portanto, esta sessão é muito necessária antes do processo de programação de soquete, mas inclinado para Windows, sistema operacional Windows no IDE. Então, antes de executar o código, antes de executar o código, estaremos entendendo os mapeadores, as funções que estão presentes, e esboça socket para que você esteja recebendo uma melhor noção do que nós estão fazendo e isso vai fazer você entender de uma maneira fácil. Portanto, estes são os métodos que estão a discutir vividamente. Estes são os métodos comuns necessários para servidor e cliente. Para Stephen, analise esses três métodos, então veremos o próximo. Métodos de soquete decidíveis são APIs que serão específicas apenas para o servidor. Então setter métodos que serão específicos para o servidor que será visto afundando com o código. E, em seguida, estaremos vendo os métodos de soquete do cliente que podem ser específicos para o declínio. Novamente, pensando com o objetivo. Então é isso que vamos estudar nisso. Por isso, é muito necessário, a fim de iniciar a programação para liquidação e luz. Então você deve saber o que todas as funções são usadas, qual é o propósito dessas funções? Então vai fazer você entender de uma maneira. Então vamos começar. Aqui para nós, você estará discutindo o árabe descoberto na palavra tópico, claro, tópico que vamos discutir em Berlim Waterman configuração. Então, antes de escrever o código e executar a programação do soquete da janela do solucionador, estes são os pequenos passos. Então, antes de escrever o código para o seu soquete, disse linha olhar, este é o método genérico construção ordinal configuração necessária para sete vôo da madeira. Então, em primeiro lugar, uma vez que estaremos escrevendo o programa e executando no IDE, esse bloco discórdia. Até agora temos que criar um projeto, mas um bloco de acordes. Então este caso no sistema operacional Windows, temos que fazer o setor dessa maneira. Temos que acrescentar isso. Temos que ligar a eles em boa biblioteca socket para que possamos usar as funções ou métodos que estão presentes nesta biblioteca de conflitos de Mendoza. Uma vez que estes, estes serão usados quando soquete 32 funções de biblioteca. Então, antes de começar a escrever o programa, que estará chamando os métodos como são as funções que são definidas. Na biblioteca que, que é chamado como w que temos puxando esta biblioteca, se você não vincular esta biblioteca, uma vez que você compilar o código, ele irá compilar porque ele vai chegar lá assim. Mas, e você executa o código porque você sabe que ao executar o código, ele será vinculado a isso. Eu realmente bem. Então, nesse caso , será finalmente a biblioteca. E como você não se vinculou à biblioteca no setor moderno, então você estará vinculando letras. Então não se preocupe com isso. Nós também vamos ver como ele só será na próxima sessão quando começarmos, eu acho que o programa, então isso é para o seu propósito de compreensão. Eu também mencionei na própria apresentação que o que todas as coisas são feitas passo a passo para que você possa viver lá e reutilizar algum vídeo. E podemos referir esta apresentação aqui em si. Então, primeiro de tudo, temos que criar um projeto vazio e não um bloco de madeira. Então, uma vez que ele estará escrevendo o programa para o C plus, então nós estaremos adicionando um MPC mais o arquivo fonte para o projeto. Então eu também vou mostrar-lhe na próxima sessão e nós escrevemos o programa no próprio bloco de poros. Como fazer apenas estes são os passos que são me fez não, não para baixo fora dele. E nós temos que garantir construído na água e, em seguida, links para eles e biblioteca soquete, que é Ws para sublinhar particularmente curta duração. Portanto, estes são os passos para a ligação que também mencionei aqui. Então nós temos que ir para o projeto, nós temos que ir para a opção do meio e, em seguida , clicar nas configurações de porcentagem de link para que nosso link vá, eu acho, para que você possa vincular qualquer biblioteca a ele e adicionar o seguinte e as opções de vinculação. Então, todos estes são os passos para adicionar Susan me ou usando realmente estar usando escrever o programa para o soquete para o sistema operacional Windows para linha de gancho celular. Uma vez que vamos usar os métodos, bem como fungos são as funções que são definidas neste arquivo de biblioteca, isto é, este, Ws para 32 pontos. Esta biblioteca contém todas as funções do método do objeto windows definidas. Por conseguinte, temos de nos relacionar desta forma. Você estará ligando, pode estar dando essas duas linhas que é menos W em particular e este. Então, isso é muito importante, também estará vendo na próxima sessão como alcançar, como realizar essas perdas passo a passo, a fim de vincular essas bibliotecas. Uma vez que esta biblioteca em si irá conter todos os métodos ou funções que serão utilizados para executá-los na programação de soquete. Então este é o debate de homens do norte não configurar o que é necessário para escrever programa cliente no sistema operacional Windows. Então eu mencionei muito importante se você não usa bibliotecas e você realmente consegue evitar isso. Você tem que fazer esse bilhão a mais de um conjunto de letras para matar aquele arquivo da biblioteca. Então você pode começar a programação para o aplicativo mini soquete para o sistema operacional Windows por este arquivo de cabeçalho mencionando. Então você tem que mencioná-los no arquivo de cabeçalho DO2 soquete que também explicam na próxima sessão o que todos os fios Arctic empresa você tem que gerenciar. Você teria que incluir na verdade para que você possa saber funções douradas. E quando esses soquete. Então estes, então via, através da identidade dissolvendo densidade Waterman para Windows para programação de servidor de soquete. Agora vamos ver outro tópico desta sessão. Então aqui nós vamos estar discutindo os métodos comuns que podem ser usados tanto para liquidação soquete, bem como cliente seguindo aqueles. Então, isso é específico para uma parte específica do sistema operacional Windows. Esta função particular é usada que é comum para o servidor, bem como cliente, que é Ws tech startup. E está tendo dois argumentos. Então você pode ver este argumento forçado como dado neste homem. E o segundo, eu sou humano não aborda neste líderes WSDL. Foster Boyd, Qual é o propósito desta função de inicialização WSS? E é necessário que temos que, você tem que usar esta função em Bork disse, Venice cliente, supostamente ferver pelo que é o propósito deste PRÓPRIO um start-up. Ele é usado para inicializar a biblioteca. Então, desde que vimos que a biblioteca KC mental que está se esgueirando em Berlim Waterman configuração. Então, para inicializar a biblioteca, esta função é usada. Então, o que esta função vai fazer, oeste nomeado para posts, registro de argumento, presente sensível, e inicializá-los na biblioteca soc. Assim, o custo do programa vai realmente nos ajudar a todos Lindbergh escreveu um para usar, que foi este soquete híbrido mesmo que pode ser mencionado por este post argumentos. Então este fazer funcionar e esta banda é, como você pode ver, Denon registro duas vírgula 0 especifica que o programa queria usar uma versão 2. Embora biblioteca há que temos visto, por isso, se temos dado versão diferente na verdade, então isso vai definir sua devoção realmente orçamentado programa um que você gosta apenas então eu mencionei aqui em si o FED ME DO, que era de Vin socket, o programa um. Oops. Então aqui o principal, o que DOC vírgula 0 significa? Ele queria usar o banheiro 2.0. programa de refrigerante quando usar uma versão 2.0. ou que significa Socket Library suposto aplicar esta função é usado para inicializar a biblioteca que significou Socket Library. E o argumento post vai dizer que o programa quer usar, que foi um deles e socket. E o que este segundo argumento dizendo sobre o forçado sobre este segundo argumento que é que ele é o endereço de dados WSB. O que isso estrutura de dados WSB? Então estrutura 1D, como eu tinha mencionado aqui. Suponha que você colocar um segundo melhor prado está nomeando DO sei estrutura de dados WSSE. Então, esta estrutura em que a responsabilidade até mesmo dizer o programa construído sobre negar o programa sobre as informações críticas que a biblioteca, mesmo Biblioteca de soquete. Mas lá. Programa que quanto número de soquetes são necessários para ser criado. Então essa é uma informação crítica que a biblioteca vai passar através do programa vendo o que são, quantos soquetes, número de soquetes que você pode criar. Então esta estrutura será preenchida antes. Assim, a estrutura será encerrada antes de retornar desta função. Espero que tenha entendido o propósito. Ele é usado para inicializá-los em bibliotecas soc. Então, sim, temos que mencionar o aborto que você quer enquanto eles foram biblioteca socket. E isso irá fornecer, isso irá comunicar as informações, informações críticas da biblioteca quando soquete biblioteca para o programa, vendo quanto número de soquetes são necessários. Então é isso que a função é necessária e isso é especificado em janelas de necessidade de saber o que um sistema operacional Windows nesta função é necessário. Você precisa usar essa função para uma placa ou servidor, bem como o que está esperando para o sistema operacional Linux. Também mencionarei quais outras coisas podem ser usadas para Windows e Linux para que você possa iniciar a programação com Linux também. Então também uma chuva você, vez que esta sessão está explicando sobre o que todas as funções estão presentes mais e mais configuração admin é necessária para executar a programação de soquete. Uma espécie de janelas de água alcalinas operando. Também. Para o sistema operacional Linux. Quase parecem funções que você pode usar. Você não requer o sistema operacional Linux Debian, os ambientes construídos, ou nós simplesmente você precisa instalar o compilador GCC e ele pode já estar armazenado em seu sistema operacional Linux. Você não precisa vincular essas bibliotecas. Também temos visto no Windows e no sistema que precisamos ligar todas essas bibliotecas, Albia delink, apenas esta biblioteca que é Louis Zoo, e uma biblioteca de soquete decidível trimestre D2. Já que temos que chamar as funções desta biblioteca. E assim esta função é definida. Você não deve começar desinfetando Arezzo tem que ligar esta biblioteca, mas no caso da folha Feistel de Lena e esta biblioteca. Então, no caso de d, dormitório da indústria, duelo de fios, esta biblioteca que não é ambientes de construção configurados como este. Nada é necessário. Só você precisa, você precisa ter certeza de que você é compiladores GCC instalados. Isso só é feito para as janelas. Excluímos este sector extra. Temos que vincular esta biblioteca, a fim usar estas funções que estão presentes nesta biblioteca. Então é aqui que as tendências e Windows e Linux. Então também ao nos dizer que não precisamos desta função, que é que esta função não está presente. Assim, quase todas as funções são semelhantes ao Linux e Windows são semelhantes apenas os métodos de combustível que não são usados no Linux e há diferença em apenas alguns métodos. Então, uma disfunção, como eu disse, é apenas específica para o sistema operacional Windows. Isso não é usado para o sistema operacional Linux. Então, uma linha por um, eu também vou diferenciar dentro de nós para que você possa iniciar o seu programa com solo Du Liniang para que não haja muita diferença, desigualmente ou diferença mínima está lá. Então isso será muito fácil uma vez que você capaz de fazer o programa neste sistema operacional Windows, é muito igual para ganhar o Linux porque se pergunta vai, estes são os passos e o início do tabuleiro. É mais fácil do que isso. Então você pode entender, você será inestimável para quem a programação. Então, também veremos na próxima sessão. Primeiro de tudo, deixe-me ver a próxima sessão que os métodos de função configurar um com fio estático também o sistema operacional Linux para ir para casa a programação de soquete. Então eles fizeram esta sessão realmente sustentável. O que faz metalóides e Berlin Waterman esposa sináptica ou sistema operacional Windows. E na próxima sessão vou discutir quais métodos e quarto de milhão de configuração do Waterman são necessários, qual arquivo de cabeçalho é necessário para o Linux? E, em seguida, na sessão posterior, considerar diferenças entre a programação de soquete para Windows e Linux águas têm profundidade é necessária. O que estão ligando bibliotecas em janelas temos que fazer e não temos que fazer para Linux e nós somos arquivos de cabeçalho não são necessários. E qual é a diferença em métodos ou todos os pontos que você estará discutindo passo a passo. Então vamos ver. Então eu espero ver você entendeu, entendeu este foco em w E agora para a próxima função TO, que é comum tanto para servidor e cliente. É a função de soquete. Então esta função de soquete você tem que criar ou lateralmente, bem como a vida selvagem. Então temos visto em nossa sessão anterior em para que foi o nosso conselho inclinado. Navier exigiu para criar um soquete na verdade, e ele precisa de comunicação lamentável entre o servidor e, em seguida, o soquete que vamos ser, vamos estar usando, você vai estar criando não deve ter o mesmo tipo de soquete, bem como eles devem ser ter o mesmo domínio de ambulância. Então, estas são coisas básicas sobre o soquete e discutidas em sessões anteriores. Então eu recomendo isso, eu recomendo que você passe por isso, parafuso através daquela sessão antes de chegar a isso. Então, ele também irá ajudá-lo a entender o que é, então qual é o propósito deste soquete? I índices de futebol acionistas são publicados que é usado para criar um soquete. Então, agora ao criar o socket, temos dimensão. Qual é o tipo de soquete? Então aqui você pode ver os três segundos argumentos presentes. E isso é se eu sublinhado ins e canção sublinhado creme e este é um grupo de óleo. É protocolo IP e PCP. Tão hostil que, através da criação de soquete, temos que mencionar o soquete. Então este arquétipo pode atender o tipo de fluxos ou pode ser uma página panam. Então eu também vou mencionar no soquete básico inserção que, embora, que tipos de soquetes estão disponíveis e Warhol endereço dominó alma aqui, este tipo de soquete pode atender tipo não confiável. Esse é o pagamento óbvio da equipe em picogramas irrealistas de usar o fluxo que é confiável. Então mais forte amarrar este gene fraldas notícias porque é muito confiável. E o que todas as coisas foram feitas. E como mencionei na sessão anterior, por favor, vá até ela. Então este é o segundo tópico de argumento. E vamos ver um por um ou dois ou três argumentos são. Então, OK, então aqui este ocupantes é composto de três argumentos. O primeiro argumento EF sublinhado, que é a água inteligente este, por isso é uma família de endereços Internet. Então aqui estamos usando o IP versão quatro. Então, existem dois tipos. Há IP versão quatro e IP versão seis. Então, uma vez que estamos usando IP versão quatro, temos que escrever este endereço de internet famílias ir, sublinhar RNA. Se ele usasse IP versão 6, as babás deveriam conhecer a IAA e a escola e específica para essa logística via azul, certo? Então este é este metadados sobre as famílias de endereços da internet. Então você tem que ceder este ímã em si. E o segundo argumento que soquete fluxo que como eu mencionei você, que é um soquetes de streaming. Então este soquete confiável. Então temos que mencionar o tipo de soquete, se é um grande tipo de tema em REP dissolver, tipo de datagrama, tão sincero e usando vapor. Então você tem que mencionar que você e Todd argumentam que é este. É, ele está mencionando qual protocolo é usado e para este orcas Gim me, você já viu que ele usou um protocolo de comunicação, RTCP. Se este dipolo, este socket estava lá, datagrama, e este será um UDP. Mas uma vez que estamos usando seu tipo de soquete, Parece que é protocolo de comunicação é TCP ou IP oblíquo. Então eu mencionei na sessão anterior ou o soquete V6. Então, por favor, passe por isso para entender o que é ilegal. Portanto, nenhum método de soquete redundante editável retornará embora. Descrip vai ou atualiza fazendo referência ao soquete do criador. Então, o que este administrador função particular montou Mildred montou no descritor para adotar novo socket que é criado. Então, adicionando esse descritor que você vai chegar lá. E você pode usar descritor de dados e você pode operar o executar funções diferentes. Então vamos ver um por um. Agora, outro método comum que será usado para servidor, bem como cliente é o socket pista. Então aqui é usado pelo próprio nome. Você pode entender qualquer outro conjunto de um soquete ou pode diminuir uma vez que é comum tanto para sete e abundância de disfunção de Lukoil. Então aqui estamos chamando por essa idéia de serviço de olhar para isso, eu estava ocupado. Isso é um descritor. Quaisquer prazos de produção, futebol, então você tem que dar seu descritor do soquete. Então, ano dois para isso, ele é usado para desconectar este foguete, e este é v. Para o sistema operacional Windows, temos soquete Globo de Ouro em primeiro lugar, e então você tem que fazer w. Então, o que é que esta limpeza WSS? Porque para desalocar os recursos que são usados pela biblioteca de soquete. Então este solo são os detalhes e como você o usa dessa maneira? Então estes são mais velhos, são os métodos comuns que serão úteis. Barra lateral como conhecimento do cliente ver métodos específicos que podem estar lá enquanto o servidor. E então vamos ver os métodos específicos para as linhas incomodando aqueles que operam um sistema. Então agora nossos amigos vão ser, agora os métodos específicos que vamos falar serão comuns a bordo ou o sistema operacional Windows, bem como se o sistema operacional enfermeiro nesses métodos específicos são parecem. Embora isso não é diferença nas funções para o sistema operacional Windows como homens como um sistema operacional Linux e você escreve soquete programa para reivindicação soberana. Estes são os métodos comuns. Pode ser usado o que irá adotá-los. Então, apenas a diferença que eu disse foi nesta função que é WAC começou a configuração é usado no Ebola e vai sistema operacional. Você tem que exigir um, é comum para servidor e cliente sistema operacional Windows, programação de soquete. E também mais uma coisa. E eu vou divulgar o soquete. Então, esta é também uma diferença e sistema operacional Windows e sólido. No caso de Nino, fulano e assim você vai sair glucagon essa perda. Você também vai desconectar o soquete, mas não chamar esta função será em IQ funções de perda devem ser atendidas e estar mencionando que na próxima sessão, quais métodos são usados? Então só que Louis XVI usa, você não precisa limpar todas as diferentes maneiras de fechar isso para desligar o soquete. Então esta é apenas a diferença entre o sistema operacional Windows e sistema operacional Linux feito ou socket que olhar linhas. Então toda a pilha de repouso agora vamos discutir aqui, que vai ser Coleman, Faça o sistema operacional Windows, sistema operacional Linux. 8. Socket Session5 Session5: Olá, bem-vindo a esta nova sessão, ou seja, métodos de cliente de anúncios de soquetes. Minutos antes da sessão, ele tinha visto a palestra para métodos de cliente de servidor de soquete para Windows. Espero que você tenha passado por isso. Então, será bom o suficiente se você tiver andado por essa sessão porque quase os mesmos conceitos são explicados aqui. Mas eu tenho um diferenciado para o Linux. Que coisas específicas eu usei para o Linux, o que toda a configuração completa é necessária, você estará discutindo nesta sessão. Não é mais do que isso. Não é muita diferença. No servidor de soquete Linux e Windows que apenas poucas defesas de método restam todas, elas são as mesmas que voltam para a parte de trás das janelas. Então, espero que você tenha passado pela sessão anterior. Então, para entender mais rapidamente nesta sessão, vou abordá-la. Pequenos colliculi porque quase as coisas comuns que estão aqui presentes, Linux e Windows mu estarão se movendo semanalmente e o resto das coisas que são específicas para a ordem, eu lhe darei sobre isso. Então, isso vai acontecer até agora você afundar mais facilmente em vez de passar por qual sessão repetidamente. Então, vamos ver aqui, o que é que os soquetes têm métodos online para o Linux? O que são todas as coisas, elas não são necessárias. Vamos ver, passo a passo. Não se preocupe, você entenderá tudo e tudo. Estaremos nos movendo passo a passo. Os tópicos que vou abordar aqui, serão discutindo os métodos comuns são as APIs que eu não gravei servidor de placa, bem como clientes. Então, esses são os dois métodos. Então, aqui no primeiro tópico, veremos quais são todos os métodos comuns de funções, que para a barra lateral e o cliente, e isso é usado para o Linux. Portanto, esses são os métodos comuns. Ou seja, existem dois métodos. O método de soquete está morto e o outro método é o método close. Então, no caso do Windows, vimos, nesse caso, um método extra estava lá que é a inicialização do WSS, eu disse que é usado para inicializá-los na biblioteca de soquetes e temos que vincular a essa biblioteca. Mas no caso do Linux, esse método não está de todo presente. Isso foi uma coisa extra em relação às janelas. Mas na feiúra de A, isso não está lá. Então, também precisaríamos vincular qualquer biblioteca, significa soquete. Precisamos vincular qualquer biblioteca em caso de linear, é só que você precisa instalar. O compilador Gcc está instalado e podemos iniciar a programação. Esses são os métodos comuns para servidor e cliente. Ou seja, ambos serão usados agora vamos ver o que é. Agora também os outros tópicos que serão discutidos serão o lado onde métodos específicos e nós estaremos afundando com os tribunais. E vemos todos os métodos, seja lado a lado, que é específico para o próprio servidor. E veremos todos os métodos para o cliente específicos do próprio cliente. Então, também estes para todos os métodos que discutiremos, modelam e específicos e específicos do cliente. Os mesmos métodos que são usados para o Windows também todos esses métodos são usados também para movê-los. Então, quase tudo é o mesmo, apenas as diferenças. Naquele ano, a função WSS Startup não está usando o Linux, bem como o método SOC close que será visto aqui. A sintaxe operando é diferente. Tudo é semelhante ao das janelas, bem como para a roupa de cama. Portanto, essa função específica para o servidor também será a mesma para Windows e Linux e prazos métodos específicos serão os mesmos. Então, vamos ver as coisas, então, discutir os mesmos métodos comuns aqui regem métodos usados para o servidor, bem como afirmar, isso é muito necessário. O nó importante que eu disse que na Lena não há função de ponto estrela WSS usada que tenha janela tem essa função. Você viu que os métodos comuns que discutimos na sessão anterior, vimos que existem três métodos fora dele. Sabe-se que a inicialização do WSS foi usada para inicializar a biblioteca, ou seja, a biblioteca de soquete de vento, e você precisa vinculá-la. Então, aqui neste Linux, essa função não está presente, então você não precisa se preocupar com links também, não há configuração necessária para isso. Então, só a donzela dela que o baixou. Em seguida, chegando aos métodos genômicos que são usados para servidor e cliente no caso do Linux. Então, o soquete é usado. Então, isso é o mesmo que você está fazendo para o Windows também, você precisa criar o soquete. Você tem que passar argumentos nele. Este primeiro argumento é a família de endereços. Aqui. Pode ser para IPv4, IPV6 quando damos EF e a escola que eu nele, isso significa que é divertido. Eu acho que ele teria mencionado seis, então ele sabe o que IPV6, isso é esse recuado e sua família dá como está, como eu dei aqui. Segundo argumento, você tem que passar o tipo do soquete. Então isso eu tinha discutido naqueles tópicos Noções básicas antes desta sessão e disse que, embora existam dois tipos de dutos, tipos de soquete, ou seja, soquetes de soquete de fluxo e datagrama e stream é um manifesto confiável. Eu sou datagrama não é confiável e ele tinha visto o que todos os recursos existem para o confiável e o que não confiável, estamos principalmente usando seu soquete de nível a maior parte do tempo porque fornece correção de erros tudo. Então, todas as coisas que você pode ir para a primeira sessão, para que possa ser seis. E a terceira coisa que você tem que mencionar o protocolo de comunicação. Então aqui desde esse gene, então eu vou confundir este protocolo de comunicação é TCP, estamos mencionando aqui PCP, se fosse por datagrama e usa protocolo de comunicação diferente, é novo que também eu discuti na sessão de cebolas sobre o nenhum dano que acabei de mencionar. Depois, há três funções da mesma forma que mencionei para as janelas também da mesma forma ou ignoro que vai, então esse método de soquete específico retornará um pseudo-soquete descritor. Onde quer que você esteja criando o soquete para o curso ou onde nossa linha de produtos, ele retornará um descritor para o soquete dessa linha escura, dependendo de onde você estiver usando. Então a próxima coisa é que a função carrega. Então aqui novamente, esta função de fechamento é que estamos usando no caso de soquete fechado do Windows. Portanto, há representação diferente. Você desconecta o soquete em comparação com o líder. Então Nina sou eu, eu uso inclusões e estamos mantendo o descritor deles. Se você for futebol lateral, reage perdendo, então você tem que mencionar que ele é roteirizado de serviço. Certo? Sim, eu mencionei colocar a linha de produtos de soquete do que você é para descritor de declínio. Então, a próxima coisa agora você verá esses métodos específicos de hardware. Isso é comum para Linux e para Windows. Então, todas essas coisas que serão repetitivas se antes desta sessão você tiver passado por esta sessão, ou seja, o soquete disse: Bem, quad windows do cliente, se você tiver ido, então você encontrará isso coisa quase a mesma. Isso será específico para a barra lateral. Portanto, já vimos que a barra lateral precisa se vincular a um endereço IP específico, bem como ao número da porta associado sempre que qualquer comunicação precisar acontecer. Primeiro de tudo, temos que mostrar que o servidor está executando o post para que ele possa existir. Ele é capaz de receber qualquer conexão do cliente sempre que for um Ignite este cliente, como ele entenderá a identidade do servidor. Portanto, esse é o motivo pelo qual o Salvo deve estar vinculado a um endereço IP específico e número de porta. Pelo nome em si, você pode entender o meu significa que ele está vinculando a algo dentro se está vinculando ao endereço IP específico e ao número da porta. Então, esse todo, o que eu te disse está escrito, é assim que você chama a função de ligação. Você escreve o argumento pulse como um descritor. Então você re o segundo é um ponteiro para a estrutura e depois o tamanho da estrutura. Portanto, este descritor é um descritivo que você alcança o soquete quando você chama o método de soquete, ele retorna o descritor para o soquete da barra lateral para que você tenha dimensão aqui vez que via um me envia para fora usando o descritor daquele soquete só precisamos ligar sedimentos, ok, precisamos minerar. E no segundo estamos dando a estrutura do soquete. Portanto, a estrutura weiter é necessária. É necessário para que você possa preencher os detalhes do endereço onde esse conselho deve comprar acabe com um número e outras coisas, como a família de endereços. Também expliquei que este endereço que estamos preenchendo é se tivermos dado no servidor um EdD sublinhado e instalamos uma nova sessão. Vou explicar que você quer classificar a importância disso é muito importante. O número do código deve ser maior que 10 a quatro porque é usado quando 0 a quatro. Portanto, deve ser maior que 0 para qualquer um deles usado em determinado número. Isso é explicado por três quintos. Vamos apenas passar e ver qual é a limitação disso é 65535. E então este é o número um, seja lá o que você mencionou, o número da porta no servidor que você tem que dizer mencionou a mesma janela. Terceiriza do cliente. Este é um número de porta na qual o servidor está comprando. Faça. Expliquei agora, quando fizemos a verificação de erros aqui, você pode denunciá-lo mais tarde. Então eu expliquei todos esses parâmetros. Isso é apenas um Não, não coloque. Ver a próxima função é decidida por essa função escutada. Isso é comum ao Windows e ao Linux, específicos desse servidor. Soquete. Soquete. Para a lição, uma vez que ela se vincula ao endereço IP e ao número da porta, ela deve ouvir isso. Para ouvir Dan, nova conexão do cliente. Além disso, uma coisa que eu adicionei aqui agora porque é algum tipo de erro que estava morto. Além disso, a mesma coisa, na verdade, apenas escuta função. Perdi isso no caso das janelas também o que os métodos de soquete do servidor. Então aqui os parâmetros extras que, que está em bendy, são chamados de Allison soco. Mas na programação eu escrevi da mesma maneira que fizemos, o que vou explicar, o que a executará. Eu executei dessa maneira. Dizia, passar os dois são humanos que é necessário. Então, apenas mencionando nesta apresentação, eu perdi. Falamos sobre a função de lição quando pedômetro extra, que eu editei como espinha dorsal. Esse backlog é o segundo argumento aqui. O que é, por que é necessário acima de tudo u e v mencionando o descritor de soquete de calçada. Na segunda lista de pendências significa que diz quanta solicitação de conexão do cliente deve estar na fila. Por exemplo, se você der aqui. Então isso significa que você está dizendo que pós-conversa neste soquete é capaz de receber qualquer conselho e ações de declínio econômico. Mas isso estará na fila porque, como o Bazin One está em processo, se houver várias linhas, o se houver várias linhas, ímã e as ações estarão na solicitação de conexão de dobra. Então, esses estarão esperando, na verdade, por um oprimido em um que completar as corridas que a mina atual esteja concluída, então o valor lateral estará ouvindo aqueles das conexões um a um de cada vez. Um será processado, mas outro estará na UTI. Então, quantos números de conexão do cliente você deseja manter em Q, você pode mencionar neste segundo argumento. Portanto, todas as fontes parecem no caso do sistema operacional Windows. Então eu expliquei a função de lição, mas senti falta de dar o segundo argumento e isso apenas considere a mesma coisa que está no Texas, mesma vez que eu só o vejo para Windows e Linux. Então o segundo argumento será adicionado descanso, tudo é salvo. Só eu perdi este. Agora, é assim que você estará escutando outras novas solicitações de conexão, para suas solicitações de conexão a partir da disfunção depo de prazo. Então você está chamando a função de saída. E isso é que eu escrevi a função de saída na qual você fornecerá o descritor aqui no servidor. E então você mencionará o ponteiro para a estrutura. E, em seguida, um ano durante diferentes coisas que estão lá, que é cliente um DDL, que você receberá. Então aqui, em primeiro lugar, no caso da função de saída, esta estrutura que você nos dará tudo o que ela retornará esta função de saída, ela retornará nosso descritor do novo soquete. Então, tudo o que você tem para o descritor de soquete descritor post socket. Você desliza o menu chamado de função de soquete. Aqui. Quando você segue a função de soquete, você comprou um descritor. Então, lá está. Ele é usado para receber novas conexões. Para o propósito de conexão, ele é usado, esse é esse descritor de classificação que você obtém quando você chama a função de saída e esse endereço. Este é o pó descritor Doug. Ele é nomeado como soquete glenoid porque você receberá um descritor para o novo descritor de soquete ou recusa. Então, aqui com este script, você pode se comunicar com essa linha, bem como enviar os dados para recusar ou receber os dados de nove. Assim, os fotógrafos deco podem ter o Bazaar usado, pois não bloqueiam nada, uma vez que o descritor de soquete possa ser usado para conectar as solicitações do cliente e descritivos ISACA ficam envolventes no envio e recebimento dos dados. Portanto, existem dois descritores. E é assim que destrutivo o julgamento explica o que, como preencher essa estrutura, essa estrutura você tem que fazer. Você tem que mencionar os detalhes da estrutura em si. A próxima coisa entre ver é que uma função C. Então, também uma coisa enquanto o soquete do servidor você pode chamar a função de recebimento. Você pode chamar a mesma função. Então, qualquer coisa que você possa chamar dependendo do requisito. Tenho uma boa olhada nesse índice. Mas isso não é usado para receber a mensagem do cliente para ver se ele é o adaptador nessa linha. E aqui você tem que mencionar embora soquete realmente. Então, já que não podemos criar o soquete, na verdade obtivemos esse descritor quando o chamamos, as exposições estão no próprio descritor. Precisamos receber isso. Tudo o que recebemos do cliente será coletado aqui antes que você possa imprimir isso antes que ele seja de caráter da indústria. Então é isso que o caso do conjunto de funções específicas do servidor. E estes são os mesmos para eles neles e também para o Linux. Agora vamos ver os métodos do cliente que são um prazo específico. Então reclinado para apenas conectá-lo mesma maneira que eu expliquei na sessão anterior do Windows. Ele é usado para se comunicar na rede. Ele deve se conectar ao servidor. Aqui temos que mencionar essa estrutura de endereços. Também uma coisa estou indo muito rápido nesta sessão que é para os métodos de cliente da barra lateral do soquete para o Linux, porque na sessão anterior que era sockets anunciam métodos de cliente para o Windows. Eu expliquei tudo para o Linux também, a mesma coisa, há um príncipe de beleza que eu mencionei você e suas próprias disfunções de descanso, das quais estou falando. Quase tudo é o mesmo. Então, há uma razão pela qual eu estou indo realmente senhas muito, é recomendável que você comprou com a sessão Danio para entender melhor. Mas estou cobrindo tudo e tudo. Não estou perdendo nada. Então eu não quero que você vá repetidamente. Essa é uma razão para jogar aqui para se conectar. **** linha só deve se conectar. Então essa é a coisa que nos inclinamos a dar a dívida deles. Portanto, essa é uma dimensão, endereço IP da máquina host local. Então, no nosso caso, E e B tendo a comunicação do soquete dentro da mesma máquina host. Portanto, é mesmo que você possa, você pode ter comunicação de soquete dentro da mesma máquina host ou em máquinas diferentes. Então, nesse caso, sempre que você está tendo uma comunicação de soquete, você uma vez que eu li inclinado a funcionar na mesma máquina, mesmo laptop parecia parar. Então, nesse caso, o IPS, ele deve cliente se conectar ao salvamento de fornecer o endereço IP no servidor onde este marfim por m2 para que você possa simplesmente mencionar a idéia do endereço IP local porque, desde que estamos executando o cliente do servidor na mesma máquina host. Então, dessa maneira, você tem que mencionar aqui a Internet IBM e sua família. E o número da porta que você tem que me mencionar era que tínhamos ligações a esse número de porta, então eu darei o mesmo no lado do cliente também, já que o cliente estará se conectando ao mesmo número de porta, então chamamos a função connect no descritor da pasta do soquete que obtivemos ao criá-lo. Então isso é apenas estruturado entre revogar com isso, eu estaria neste final, número da porta e o tamanho da estrutura. Este é o, este é um velho Donato sobre a tabela são o, outra função é o sensor. É o cliente, essa é a conexão simplesmente chamando a função de conexão dessa maneira, é simplesmente então ele pode enviar e receber os dados. Portanto, essa é uma sintaxe foi e você também pode receber a função de semente de qualidade a partir daqui. Enviando, estamos enviando alguma cadeia de caracteres, a mesma coisa, aprendendo a programação de soquete em profundidade. Estamos passando os dados do descritor de soquete, enviando esta string de caracteres que falhamos com dados do lado do Buda dele. E também do cliente, ou seja, daqui, esses dados serão enviados para o servidor no tamanho dessa coisa. Então, é isso que enviaremos em conformidade para vários amigos. Eu acabei com esses métodos Brookline para Linux. Então você pode entender para resumir, você entendeu o que todos os príncipes, seu cartaz para um dipolo no Linux, não há configuração ou vinculação da biblioteca de soquetes de vento, já que estamos não usar essas funções. No caso de Nina, não há função WSS Startup. Portanto, essa coisa não é disfunção não é caso presidente do Linux. Em seguida, descanse outras coisas como criação de soquete é semelhante à das janelas também. E o fechamento do soquete, temos que desconectar no caso do Windows também, que a previsão de índice é determinada no caso do Windows que chamamos de soquete de cola e existem diferentes, fazemos a limpeza também. Mas no caso do Linux, basta lembrar que Lewis funciona para desconectar o soquete. Em seguida, esses são os métodos específicos que são usados para o servidor. Esses métodos que são vinculativos ou a calçada que estaremos ouvindo , aceitando todas as coisas que são comuns para sistema operacional Windows, bem como para os linears, para os Lynas que responderam o mesmo e para as janelas na cena. Essas são as coisas que estão lá. No caso do lado do cliente, também os métodos específicos do cliente que estarão lá, que também serão comuns para Linux, bem como qualquer janela. Então você precisa se conectar do cliente. Temos que enviar e receber a função deles. Envie e receba os dados. Então é isso que passamos agora nesta sessão, vou explicar a diferença entre o conjunto de soquetes de aplicação para Linux e Windows. Para que eu te explique. Isso é tudo muitas coisas, então eles estarão lá, o que será comum até agora que estudamos que é o Waterman vencedor configurado no Windows, apenas mencionando para vincular a biblioteca e depois O Linux inconsiderável para instalar o GCC parecia ter certeza de que isso está evocando. Então vou explicar o que todos os arquivos de cabeçalho são necessários para o Windows, quais arquivos de cabeçalho são necessários para o Linux? Então, qual código extra é necessário para o Windows e quais métodos comuns existem? O que eu digito verificando, como você relatará um erro no Windows, como você relata no Linux. Palestra morta. Seremos vistos assim que você passar por esta sessão e, mais tarde, começaremos a programação. Aquele meio que vimos, você estará aprendendo e também em sibilos. Uma coisa importante que é comunicação do cliente do servidor HTTP estará sendo executada se você não viu, vendo como o navegador fala com o servidor Apache, como a comunicação ocorre sempre que você abrir qualquer site, sempre que você quiser abrir qualquer Beijing Jenny no navegador navegadores está enviando uma solicitação, como ele será conectado ao servidor Apache e como os dados serão preenchidos, como a página será preenchida com isso, com esses dados, a página será carregada para que sejamos vistos usando o soquete, usando a comunicação do servidor HTTP que é muito importante. Então, é assim que vamos prosseguir passo a passo. Obrigado. Muito obrigado. 9. Socket Session6 de de Socket Socket Session6 de de diferença de Host de Session6 para Windows Linux: Bem-vindo a esta nova sessão que é a diferença entre o Windows e a programação de soquete da Nina. Já vimos na sessão anterior os soquete do windows, bem como os métodos de soquete bilionário. E espero que você tenha passado por essas sessões. Eles serão muito úteis para sob espírito nesta sessão. Isso será isso lhe dará a diferença entre as janelas, bem como as de Nina. Mas alguns adultos aqui. Vamos começar. Tópicos. Estaremos cobrindo a defesa na configuração do administrador de água de construção para executar a programação de soquetes no Windows e no Linux, estaremos discutindo sobre isso. A próxima coisa vamos discutir o que todos os arquivos de cabeçalho são necessários para a programação de soquetes no Windows e também para o Linux. Estes são, esses arquivos de cabeçalho serão diferentes para ambos. Então, veremos a defesa e poucos métodos. Essa é uma função para a programação de soquete no Windows e no Linux. Bob. Então, neste terceiro, você pode ser um metal quase tudo porque vimos na própria sessão anterior , fazendo você entender programação de soquete para Windows e Linux. Eu tinha dito quais funções são usadas no Linux e no Windows. Quase seminários são quase todos os métodos que eu uso células vermelhas, janelas de depo no local e alguma pequena diferença em uma das funções e no resto. Todas as coisas que eu vi decidiram a configuração. Então, vamos ver. O quarto, estarei discutindo o tópico que é cenário diferente Relatórios entre as janelas e o Linux. Então, vamos começar agora a primeira postagem que é a configuração, o príncipe e o projeto de lei ou ambos, falsos. Veremos a configuração do compartimento para que as janelas executem a programação do soquete. Então isso é B. Isso será meio repetitivo porque vimos em sessão anterior na origem, o sistema operacional Windows para executar a programação de soquete, precisamos vincular à biblioteca que é ws sublinhado 32 dot lib. Porque estaremos usando as funções. As funções são definidas nessas bibliotecas para a janela, soquete de janela. E, portanto, temos que vincular essa biblioteca porque o tempo de execução, se você não vincular essa biblioteca mais tarde quando executarmos o programa, ela nos dará o link mais tarde. Ele não encontrará a biblioteca, pois não a vinculamos. Portanto, isso é muito importante e os passos para vinculá-lo, eu mencionei aqui a mesma coisa, opções de construção de projetos. Em seguida, temos que clicar no link ou nas guias de configuração e essas coisas, essas são as etapas que você precisa navegar. E então você precisa adicionar essas bibliotecas. Também escreveremos o programador e mostraremos manualmente também como fazê-lo, passar por isso sobre a ideia e explicá-lo. Isso é muito importante. A configuração é realmente importante. Caso contrário, você receberá um link no momento da execução. Agora você tem dimensão, o caso piloto de cabeçalho na programação do soquete da janela. Agora, estes são a configuração Waterman do edifício, a unidade elementar se eu mais tarde. Em seguida, a configuração do Waterman do edifício para o Linuxes, você precisa simplesmente garantir que seu compilador GCC esteja instalado ou não porque é novidade para compilar o código que é diferente, embora ideal. E, portanto, se você quiser passar pela interface do usuário da interface do usuário, não poderá fazer a linha de comando. Você pode instalar um ID específico, nesse caso, e você pode criar um projeto na verdade. E você pode enviar código de vazamento ou programação e código programação de soquete aleatório ou aleatório. Você não precisa vincular a biblioteca. Se você estiver usando um desenho de linha de comando, certifique-se de que seu GCC esteja, este é um compilador instalado ou não. Por padrão, ele será instalado em imagens e mais curto. Nenhuma biblioteca de vinculação será necessária no caso das Linux. E temos que mencionar alguns arquivos de cabeçalho para o Linux também para fazer a programação de soquete que discutiremos mais tarde em slides posteriores. Agora isso é, toda essa configuração é suficiente para iniciar a programação no Linux. Então isso é o que evidência realmente no Windows e nos liberais. E a próxima diferença para o preço do cabeçalho entre o que o arquivo de cabeçalho deve ser incluído ou o Windows para executar a programação do soquete e para a zona linear. Então, isso está em arquivos que você precisa incluir meu sistema operacional Windows para executar a programação do soquete. Você precisa. Eu mencionei este stdio.h iodo, O simplesmente entrada-saída para simplesmente exibir a mensagem no console ou simplesmente dar a entrada do console. Isso é o que, no entanto. Estes são os arquivos de crédito que você precisa dar no caso do Windows. Em seguida, a borda do ponto da meia do vento, isso é específico para eles quando as funções de soquete que serão declaradas neste arquivo de cabeçalho. Então você tem que mencionar esse tubo de cabeçalho. Então você tem que mencionar a DST viveu no limite. Estes são os três arquivos de cabeçalho que você precisa para executar a programação de soquete em enigmas. Então, a mortalidade, você tem que mencionar todos esses arquivos de cabeçalho. Isso é stdio.h ponto de soquete DIN, dotagem I, std lib, borda de ponto de corda. E então você Anna, Anna, UNI stdio.h. Então todos esses arquivos de cabeçalho. Então você tem que dar, no caso do sistema operacional Linux e você está executando a programação do soquete. Essas são as diferenças entre eles. O próximo tópico, na verdade, que estaremos discutindo, quais métodos diferentes existem entre os diferentes para Windows e a ordem quando vimos uma programação de soquete branco até agora, windows, como eu disse, esta é a função extra que usamos. Isso é muito necessário para o sistema operacional Windows. Ele é usado para inicializar. Todos vocês foram biblioteca de soquete, embora ele informará à rede que o programa quer sua versão digital da biblioteca que o programa quer que você use. Então, isso lhe dará a versão dois cães 0 na biblioteca do soquete de vento. Ele irá, o programa indicará esta versão que você precisa usar para esta biblioteca Mintaka. E essa função é usada para inicializar a biblioteca de soquetes. E a segunda estrutura de dados apontava para a estrutura. Assim, a estrutura teria sido a biblioteca de soquetes fornecerá informações críticas de comunicação ao comunicar o programa, vendo quanto número de soquetes e permiti-lo a ser criado. Então, todas essas coisas lá fora no caso de Novo, no caso do sistema operacional Windows, não no Linux. Portanto, esta é uma função extra que é que no Windows e você não sabe, você não precisa usar um nominal. Portanto, isso é uma diferença em uma das funções. Esse método os despacha individualmente, sendo IX nova versão, o curso lê melhor isso como a visualização em bibliotecas. Segundo, quando eu lhe der as informações críticas quanto nesses soquetes podem ser criados, serão enviados da biblioteca para o programa. Isso eu mencionei. Sim. Então Nina diz que eu disse que não há estoque ou função, nenhuma inicialização ou prima Nina. Agora, outra coisa é que, no caso das janelas, são funções que são usadas para desconectar o soquete. Temos que chamá-lo de função de soquete fechado. Você precisa causar esse descritor de soquete. Isso é o que eu esperava que, porque eu disse sobre nosso cliente, tinha dois pais oferta com script dependendo de sua exigência e uma função de limpeza também deveria ser chamada no caso do Windows. Então, o que é essa limpeza do WSCC? Ele é usado para desalocar fontes de dados que são usadas pelo Beanstalk. Isso definitivamente está em e retornará 0 e sucesso e número diferente de zero em caso de falha. Então, espero que você tenha entendido isso. Estes são os métodos que são usados no caso do Windows para desconectar esse soquete, sem funções que você precisa chamar. E há um propósito que eu expliquei para o limpador WAC. Então, no caso do Linux, para desconectar o soquete basta chamar o fechamento. Então você tem que passar esse descritivo. Se estiver satisfeito, então ele será o script ativo. Se for um Linux, se for cliente, ele será aplicado. É bom ir. Isso está simplesmente fechado. Não há limpeza e tudo mais. Em seguida, outra diferença e outro tópico realmente mais defesas, defesa e edição de relatórios entre Windows e Linux. Então, vamos ver para o Windows, como eles votam com erro? Esta é a resposta de edição da função. A mensagem estará chegando aqui. Então você simplesmente colocaria esta mensagem e esta mensagem e a coletaria aqui. E esta é uma função que é WL, eu digo se perder erro. Dessa forma, você precisa relatar um erro. Então, o que esse erro WSL GetClass? Agora vamos ver detalhes sobre todas essas coisas agora na janela usa seu próprio recurso de mensagem de erro sim para indicar que o que deu errado com a chamada de soquete, essa função pode retornar um inteiro representando a última área há uma boa década pela deficiência do campo de chamada de soquete. Dê-lhe o que é meu, qual é o motivo do vídeo do soquete? Ele retornará um número inteiro. Agora isso tem a versão Windows ICD-10 das respostas de edição usa duck, o último erro. Então, esta é toda a descrição sobre isso. No caso do Windows, precisamos relatar um erro dessa maneira. Agora vamos ver que as nozes Sweeney lineares estão recebendo a mesma função, mas desta vez que não ligou, vamos até ligar. Isso ERA uma GetClass e de igual soma. Se não funcionasse, esse é o editor B e a mensagem do editor Yoda foi a edição da controladora para relatar as mensagens de erro do sistema. Isso é uma diferença. Agora, todas essas coisas são necessárias na verdade. Então, essas são as diferenças entre a programação de soquetes Windows e Linux. Então você não pode ver muitas diferenças mortas ou funções. Se você falar em termos das funções apenas no Windows, você tem que adicionar uma função extra, função de inicialização OWASA. E também outra coisa relação à função é que a função de perda é diferente. Sintaxes, modelo diferente, Windows e Linux descansam todas as coisas específicas para o servidor em prazo específico as funções são as mesmas então não falamos sobre elas. Estou apenas fazendo a configuração é diferente no caso do Megiddo. Então você tem que adicionar essas bibliotecas, como mencionei nesta etapa aqui. No caso do Linux, a configuração de vinculação é necessária. E no Nipah Linux, temos que fazer outros dois se o seu compilador estiver instalado e a edição, os arquivos de cabeçalho que mencionei, estes são os diferentes empreendimentos para Windows e para ordem. E a última coisa sobre o relatório de erros de estupro, este é o discurso diferente, função diferente no Windows. E no caso do Linux, ele chamará a função diferente que é melhor. Isso é o que, isso é tudo. Você tem que manter em conta. Ambos bombardeiam a programação do soquete para Windows e Linux. Portanto, não se preocupe, amigos agora na próxima sessão, até mesmo sejam vistos na comunicação do cliente do soquete lateral. Ele estará escrevendo o conjunto de placa vertical para a programação do soquete do Windows. E vamos escrever o código do cliente para a programação. Para o código do cliente para as janelas será e, em seguida, faremos a comunicação. Vou te dizer novamente, entenda que há muitas diferenças mínimas entre o Windows e o Linux. Então, uma vez que você conhece a codificação da janela para a programação do soquete enquanto estiver, é apenas uma grande coisa , cara, escrever um programa por ordem, você não precisa se preocupar, na verdade, é só copiar colar realmente sai do Nina porque no Linux, é muito um z do que o das janelas é porque algumas das funções não são usadas. Também descanse apenas as defesas lá dentro. A função close que você precisa chamar minuto indiferente, pois tudo é o mesmo e não há configuração necessária para o Linux. Se você conhece a programação para programação soquete ou decidiu o que, bem como o cliente para Windows, você será se fosse muito Z refazer a programação de soquete para Linux. Então, é assim que vamos prosseguir com as tendências. Obrigado. Muito obrigado. 10. Socket Session7 de execução de um programa Session7 Windows ++ Parte 1: Olá, bem-vindo a esta nova sessão que é dito sobre a aplicação de programação de soquete para Windows no bloco de código com sua execução. Então, aqui estaremos escrevendo o código para a programação do soquete do servidor que estaremos fazendo, estará fazendo a programação do soquete do cliente, será executá-lo para as janelas, será executá-lo no bloco de código. E veremos como esse conjunto de soquetes de aplicação de minutos um com o outro. Esta sessão? Espero que você já tenha visitado a, toda a sessão anterior em segmentos rice porque cobrimos os diferentes métodos, funções diferentes, o servidor de soquete, bem como swaddle, cliente de soquete ou Windows, bem como também sincronizamos com o código. Quais instruções são usadas, quais funções diferentes ou usam, qual é o propósito? E como para o lado do servidor, quais funções, em vez serem dois pontos para o lado do cliente, quais funções precisam ser? Serra? Todas essas coisas que vimos, também vimos a configuração do administrador de água do edifício, que é necessária para a programação do soquete do Windows ocorra. Caso contrário, visite essas sessões. Vamos começar a codificar para a programação de soquete de linha de calçada. Será muito físico. Ainda assim, vou explicar, pois estaremos criando um novo projeto para escrever o código para o servidor, a programação do soquete do cliente para Windows. E vamos fazer o todo completar a lista myset up, vendo o que todas as coisas temos que vincular. Quais são as bibliotecas necessárias para vincular? Então você ainda estará recebendo bandas que passamos por esta sessão. Vamos começar. Então, para apenas revisar, vimos vários métodos de soquete. Quais são os servidores são bons métodos que vimos. Primeiro de tudo, existe, você precisa inicializar o WAC. Isso é necessário no Windows para Linux, não precisamos inicializar o WSL. Então, vimos qual é o propósito ou tópico. Ele é usado para inicializá-los e Socket Library. E vimos como o programa vai conseguir o aborto. É um, mas eu fui biblioteca de soquete. Então, as postagens são humanas. Nós vimos, você viu qual é o segundo argumento. Acabou APA Sócrates para inicializar pomba e Socket Library. Então, a segunda função que vimos para criar um soquete, então ele retornará ou descritor do soquete. Então, vimos que, ao criar um soquete, temos que dar o tipo de soquete e ele é regulado como um soquete de fluxo. É um soquete confiável ou se é um soquete de datagrama em algum nível, soquete. E é sobre como temos que dar o protocolo de comunicação. Como sabemos que o soquete de fluxo está usando TCP, datagrama está usando UDP. Podemos criar este soquete AND gates nos métodos de servidor que temos C e, em seguida, obtemos este descritor de soquete. Então, no lado do servidor, precisamos ligar esse soquete ao diabetes e ao número da porta que vimos. Então nós ouvimos esse soquete. Então não vimos van, ouvimos esse soquete. Estaremos passando o descritor de soquete, assim como você mencionaria no segundo argumento, quantos números dessas conexões de soquete do cliente devem estar na fila pendente, na espera fila. E então temos uma função de saída de pedregulho para aceitar a conexão do cliente. E depois que a conexão for estabelecida, então, quando chamarmos essa função de gerenciamento de saída, ela retornará outro novo descritor de arquivo. E este descritor de arquivo, podemos realizar o envio e recebimento iniciados para enviar e receber dados com esse cliente. Este descritor de soquete, que era. Então, retorne dessa função de criação. Isso, vamos mantê-lo envolvente para aceitar a conexão. E outro soquete, novo descritor de soquete W, mantenha-o para ler e escrever para comunicação com isso apareceu 9% de dados, bem como para receber os dados. Então, é assim que a função de desconexão terminada que vimos para desconectar o soquete no caso dos métodos de soquete do servidor. Então, vimos a próxima coisa que são os métodos de soquete do cliente. Não precisei inicializar o ensaio. Isso também é específico apenas para Windows. Inicialize a biblioteca de meias de vento. Em seguida, criamos o soquete nos clientes que sublinhei que não há muito código se as funções forem usadas. Então, temos que inicializar os EUA para inicializar as bibliotecas de meias de vento para que possamos usá-lo. Então temos que criar o soquete para que o cliente e o servidor sejam aplicativos diferentes, cada um deles para ter essa criação de soquete neles. E também temos que mencionar o mesmo tipo de soquete, bem como o protocolo de comunicação de destino deve ser o mesmo de ambos os lados, mas assim como minigráficos para que eles possam se comunicar entre si. Em seguida, chamaremos a função de conexão para que o cliente possa enviar uma solicitação de conexão para o servidor. E depois que a conexão, uma vez que essa conexão seja aceita do servidor , envie e receba estatísticas do próprio cliente. Em seguida, desconecte a função, não desconecte o soquete. Então, todos esses métodos que vimos agora começando agora vamos percorrer o servidor, programação do servidor cliente no bloco de código do Windows. Vamos criar um novo projeto que você precisa para instalar o xilogravura IDE. E é realmente disponibilidades e código aberto. Então você não precisa comprar uma licença. Se você já viu, se você instalar esse ID, você pode escrever o programa comigo e executar e ver como a comunicação ocorre. Já o instalei. Vou abrir todo o ID do bloco. Vou criar um novo projeto. Então, primeiro vamos criar um novo projeto para a prata. Em seguida, criaremos um novo projeto para essa linha. Depois que o bloco de código estiver instalado, basta clicar duas vezes nele. Você verá esta página. Agora, vamos criar um novo projeto clicando em Arquivo. Selecione novo e, em seguida, selecione projeto e, em seguida, selecione e aplicação no solo. Em seguida, clique em Avançar. Então, como estamos escrevendo o programa em C plus, ele já está selecionado, clique em Avançar e escreva o nome do projeto. Então isso é uma espécie de soquete. O Windows deve ser um nome muito sensato , bem como um nome curto para que você possa entender o que está fazendo no programa. Este é um nome de pasta que você deseja despejar esse projeto. Em seguida, clique em Avançar e crie um programa padrão Hello World para você ainda. Agora temos que substituí-lo pelo código do servidor. Já escrevi o código. Vou copiar aqui. Não quero perder tempo e escrever instruções únicas. Você já viu em uma sessão anterior o que todas as instruções estarão usando. Também vou explicar linha a linha as instruções sobre o próprio programa do jogo. E então vamos executá-lo. Enquanto você faz isso. Mais uma vez. Escrevendo todo o código, vamos despejar o código que eu já escrevi. O código que eu já escrevi acabei de baixar. Eu tenho apenas aumentos, aumente esse exercício para que você possa ver que codificação estamos fazendo. Para aumentar isso excita. Agora vamos começar por entender este programa um a um, linha por linha no servidor. Portanto, ele está usando os mesmos defeitos que já vimos até agora. Agora, a execução do seu programa começa desde o primeiro, essa é a função principal. Espero que você esteja sabendo qual é a função principal. função principal é a função melhor sempre que você compilar o código, sempre que você executá-lo, a execução do seu programa sempre começará a partir desta função principal. Quaisquer que sejam as linhas de código que você vai dar nesta função principal, nove por nove executadas. E é um ponto de entrada para iniciar uma execução do programa para que os custos de controle venham nesta função principal e motor, quaisquer linhas que você tenha escrito aqui que serão executadas linha a linha. Agora, vamos ver para o código do servidor o que escrevemos para programação de soquete. Nós declaramos, vimos isso como dados WIC. Vimos o que é. Nós inicializamos, criamos, criamos a variável nesse tipo de dados, ou seja, dados WSL. Vimos que, no caso das janelas, você tem foo. Inicialize a biblioteca de meias de vento para isso, estaremos usando. Você estará chamando a função de inicialização. Esta função de inicialização está tendo dois argumentos dos quais o segundo argumento é o ponteiro para os dados WSL da estrutura. Tão mais amplo estruturado conforme necessário. Vimos que precisamos desse DO. Esses são eventos de biblioteca com frequência. Ele se comunicará com o programa, dando informações ao cão sobre informações críticas, ou seja, quanto número de soquetes pode ser criado. Essa estrutura será preenchida. E assim, como vamos usá-lo, portanto, temos que criar uma variável oferecida dessa maneira, os dados do WAC. Então estamos criando o objeto desse soquete. Estamos tendo dois objetos neste soquete. Sabemos que o descritor de soquete estará recebendo quando chamarmos a função de soquete aqui. E eu tenho um descritor de soquete que eu estava enganando quando chamamos a função exceto. Portanto, saia da função para o descritor de soquete de um modo. Vimos que ainda há um motivo. Criando o objeto deste soquete, estamos criando novos objetos pelo soquete do servidor de nomes e pelo nome Eu sou sock. Em seguida, a próxima parte é Íons SOP ADD ou sublinhado. Então, estamos pintando novamente para objetar porque em V&V chamado de função de soquete. Quando chamaremos a função de ligação, você cumpriu todos estruturados com endereço IP onde esses servidores estarão agitados e com o número da porta. Portanto, essa é a razão pela qual essa estrutura será necessária. E isso será criar o objeto disso. E, novamente, meu mais estruturado é necessário. É necessário sempre que você chamar a função de saída. Aqui temos que mencionar isso. Parece aqui. Essa é a razão pela qual isso é necessário e você está criando no deck oferecido dessa maneira. Agora, a primeira função que será chamada de UFC, ele tem que inicializá-los na biblioteca de sal. Portanto, estaremos chamando essa função de inicialização do WSS. E você estará passando dois argumentos. O primeiro argumento, que será melhor, dirá que o programa quer usar a versão das bibliotecas de bugs e soquetes. Então, como o programa quer usar uma versão 2 antes que o primeiro argumento seja dado dessa maneira, faça o que entre parênteses dois vírgula 0, isso significa o programa a ser usado. Quando Socket Library 2. O segundo que é um ponteiro para essa estrutura, essa estrutura de bruxas, que os dados estarão aqui. Biblioteca de soquetes com programa ancião ou quantos soquetes ele pode ser criado. Portanto, isso será preenchido antes que a função Startup do WSIS chegue ao fim. É assim que isso será passado como um EMT e será preenchido. Não falei biblioteca e essas informações serão preenchidas. Quantos números de soquetes serão, novamente, criados? Saia das informações anteriores. É assim que estamos chamando essa função para a programação do soquete de janela e site do servidor. Então a próxima coisa, já que eu não, você sabe, parte da regra é criar um soquete. Agora vamos criar um soquete. Então, ao criar o soquete, temos que mencionar que temos a vitória que está postando será a família de endereços. Portanto, usaremos IPV4 e implantabilidade dessa maneira. Segundo menos o soquete, soquete apertado. Portanto, queremos que este soquete de fluxo seja criado, que seja confiável e protocolos de comunicação beta de carbono. Então, estamos dando isso como zeros, assim como antes que possa ser 0. Para este fluxo, ele usa TCP, você pode usar o Xero. Outro. Assim que chamarmos a função de soquete, ela retornará o descritor do soquete. Agora, esse descritor será usado para diferentes funções à frente. Isso é para a função bind ou a função de ouvinte, bem como para a função exit. Agora, você pode ver o que estamos fazendo aqui. Estamos preenchendo essa estrutura. Então, o que é esse conjunto de ADD? Eu disse anteriormente que é do tipo soquete ADD. Como vimos que quando chamamos isso é necessário, todo esse código é necessário na função de ligação. Uma vez que na função de ligação, vamos mover o soquete para ser vinculativo. Número de porta e endereço IP específicos. número da porta e o endereço IP devem ser fornecidos na estrutura. Essa estrutura é o servidor ADD ou que são outros tipos, meia ADD ou sublinhado ferro através do preenchimento um a um. Eu lhe disse que este endereço, que estamos dando para um servidor ouvir a ligação a este endereço, é o que eu expliquei em detalhes na sessão anterior. Deixe-me dar, ADICIONAR e sublinhar. Isso significa que você deseja barra lateral para todos os endereços IP da vítima, diferentes interfaces de rede nele. Embora os usuários usem terra para buscar a Internet, o endereço IP dessa terra decidirá onde ele pode ser vinculado. E se o usuário estiver usando Wi-Fi, as interfaces de rede diferentes estão tendo um endereço IP diferente denso sobre esse endereço IP na mesma máquina host. Em seguida, o segundo argumento estamos mencionando a imagem da VM. Eu mencionei a família. Então, quando você lhes der esse coletor, IPV4, será dessa maneira. Então estamos dando a quantidade do número da porta para o salvamento de me dar quatro vezes cinco. Podemos dar qualquer número de porta maior que 1024, menos de seis por 535, porque um até 1024 é usado. E embora depois de 10 ir para, você pode fornecer qualquer um dos números da porta. Então, qualquer número da porta, você sempre se lembrará do lado do cliente. Você precisa fornecer o mesmo número de porta porque os clientes se conectarão ao mesmo número de porta onde a barra lateral é minha para toda a estrutura. Uma vez preenchido, você chamará a função bind novamente. Você passará o primeiro argumento, pois o SOC é o que é um descritor realmente qual você, que é o qual foi escrito quando você chama a função de soquete. Este é um descritor de soquete. Aqui estamos passando as postagens e o segundo argumento humano é a estrutura que você pode ter sentido que estamos passando aqui. E então o terceiro é o tamanho disso. Informações. Agora, dessa maneira, comprando a função agora, a barra lateral está vinculada ao número da porta e ao endereço IP. Agora, o que os ouvintes fazendo no caso da lição, a função de lição, você está passando o primeiro argumento como novamente o descritor do soquete. E o segundo argumento, número, conexão do cliente, que você deseja manter em q, já que não queremos se você não quiser nenhuma, qualquer conexão de cliente para manter em q, então podemos simplesmente escrever 0 ou podemos um se você quiser uma conexão, ela estará em q auto conexão e cubo. É assim que funciona. Então esta lição significa que está ouvindo, ouvindo a conexão da linha Connect. É isso. Depois disso, chamaremos a função de saída para sair da conexão da planta. Isso significa barras, novamente este descritor de soquete que foi retornado da função de soquete. Em segundo lugar, passaremos esta dose atingida, tão destruída como vazia, ela será preenchida na verdade. Uma vez que continuamos chamada função de saída. Aqui, todos os detalhes relacionados ao cliente serão preenchidos. Todas as informações relacionadas a essa linha. Qual é o endereço IP, o que é, qual número de porta ele para qual número de porta ele mapeou e todos os detalhes ele será preenchido, na verdade, quando chamarmos a função de saída e o tamanho disso. Portanto, estamos simplesmente passando como está. E então ele está sendo executado, então você encontra um novo descritor de soquete. Portanto, esse descritor, assim como esse descritivo, ambos são diferentes. Eu disse que ainda é diferente porque esse descritor pode ser usado para aceitar outras solicitações de conexão dessa linha. Não queremos que nada seja bloqueado. Então, esse Sócrates se envolveu, em ouvir e aceitar a conexão. Nesse caso. Também queremos operação de leitura e gravação simultaneamente. Uma vez que esteja, ele está aceitando uma conexão do cliente. Queremos que ler e escrever estejam caçando e não queremos que seja, mas, portanto, outra carga, o roteiro de outro soquete ou descritivo será do meio GET e vamos manter isso, engajar na leitura, escrevendo este e este. O que aceita outra conexão com o cliente. Espero que você tenha entendido isso e isso e isso será feito. Uma vez disse sobre aceita essa conexão do cliente e é capaz de receber a mensagem do cliente. Então, seu descritor em si, vamos mencionar aqui, se isso for bem-sucedido, só poderemos receber aqui. Portanto, se a condição for mencionada e este cliente certo V for obter, você mencionou esse soquete descritivo. Como precisamos receber neste soquete em si, o que o cliente disse será coletado nesse buffer. E então vamos exibir essa mensagem. Em seguida, o memset é armazenado em buffer para 0. E então é assim depois de tudo é que estou perdendo o soquete. Portanto, depende do seu uso. Você entra na chamada mesma função aqui. Se você quiser que algumas informações do motor sejam passadas do servidor, então você pode chamar a mesma função. E se você quiser conexão repetitiva, você pode colocar um loop aqui também. E você pode escrever a condição de que se alguém andar condição, o usuário dê isso e saia do loop e não sabe Nieto além querer qualquer comunicação dependendo do uso. Novamente, modifique o programa. Este é um programa simples e estou recebendo a mensagem da decoração da planta. Estou chamando essa função de recebimento, mesmo que eu possa chamá-la de função seno se eu quisesse enviar qualquer dado. É o mesmo. Então, função de segurança e vai ligar dessa linha para que os clientes possam enviar uma mensagem. Mesmo nos clientes que chamamos, podemos chamar a função de recebimento, mas estaremos aqui. Estou mostrando a você sobre o recebimento da mensagem do site do cliente. O lado do cliente enviará essa mensagem. Agora, estamos fechando o soquete dessa maneira. É assim que isso acontece. Espero que você tenha entendido cada linha de código e isso o encontrará mais do que Z porque fizemos todos os pré-requisitos antes de iniciar o programa. Vimos todas as funções em detalhes. Afundando com o código. Peço que você passe por isso se você não tiver ido porque eu repeti todas as coisas novamente aqui, mas com mais detalhes de explicar aquela sessão em si não fez você entender. Agora, vamos construir. 11. Socket Session7 de execução de um programa Session7 Windows ++ Parte 2: Antes disso, você quer colocar os pulmões. Então eu já disse o log para segundo lugar, para aumentar o tamanho, eu ainda tenho. Se você quiser pertencer aqui no console, a configuração da ala é necessária. Clique em Novo e, em seguida, você precisa verificar esses bloqueios. Depois de verificar esses bloqueios, você verá essa tela amada que eu já verifiquei, então estou recebendo que esta tela bloqueará agora eu sou como construir um programa. Clique em. Deixe-me limpá-lo porque eu já tentei apenas um segundo. Ok, agora clique em Build e, em seguida, compile esse arquivo. Então aqui você pode ver que não há setas em TO, no lado do servidor. Agora vamos vincular. Agora eu queria mostrar uma coisa importante aqui. Eu não fiz nenhuma probabilidade de configuração na configuração do administrador de água, o que mencionei você na sessão anterior devemos fazer para as janelas. Não acabei porque queria mostrar o erro. E depois do, você verá lá quando executarmos , haverá um link nele. E é claro que você pode ver que eu não fiz nenhuma configuração. Não estou vinculado a nenhuma biblioteca, então você entenderá como corrigi-la, como vinculá-la. Essa é uma razão pela qual eu não o consertei anteriormente para que, se eu tivesse corrigido, você não teria atingido meu caso. Eu não teria recebido erro. No seu caso. Você não teria conseguido e eu não quero que nada vá em atraso. Essa é uma razão pela qual eu não fiz nada. Quero que você entenda tudo e como consertar tudo. Então, agora vamos vincular o gráfico azul. Agora vamos construir e executar. Eu deveria receber um erro de vinculação. Sim, eu queria vincular o cabeçalho. Você pode ver aqui no console ou no próprio blog. Você pode ver referência indefinida a startups de tecnologia WSS ou quaisquer funções que estamos chamando de água. Quando esses arranques, o Lewis começou, então, encaixe tudo. Ele está recebendo uma referência indefinida. Por quê? Porque eu já lhe falei para o sistema operacional Windows e você usa a programação do soquete, bem como o cliente. Como estamos usando funções diferentes, estamos usando as funções definidas na biblioteca de soquete de vento. Temos que vincular em nosso projeto a essa biblioteca de edição fixa não linear. Porque temos a construção dessa biblioteca para que o tempo de execução na vinculação aconteça. vinculação sempre acontece sempre que você estiver executando o código, então apenas a definição na função não rejeitaria a fama em declarações ou sempre que você estiver chamando suas funções em tempo de compilação, ele será compilado com sucesso porque eu coloquei uma verificação em nenhuma das declarações recebidas do arquivo de cabeçalho que você mencionou. Você recebeu todas as declarações para você, não recebeu nenhum erro. Mas, no tempo de vinculação, verá a definição. Isso, você não vincula. Você, você obterá a referência indefinida que executando. Agora vamos ver como corrigir esses erros. Bem, obviamente não sou. Eu removi essas configurações, criei configurações de ambiente, então mostrarei a você do zero. Para isso. Eu mostrei a você como fazer isso. Ambas as configurações vão para compilador, seus links ou etapa de configurações, bom, você está tendo outras opções de link aqui. Você precisa fornecer a esta biblioteca, essas bibliotecas para o soquete Windows 32 bits. Então, isso é para isso. Você tem o usuário quando Socket Library e, portanto, você está pensando e me dá menos Lusaka fazer, em seguida, basta salvar essas configurações. Agora, quando você compilar seu código, ele deve ser compilado com sucesso. Agora está dizendo que veja esta mensagem, nós demos esse nome para conexões recebidas. Demos esta mensagem aqui, na verdade, escutando C-out para conexões recebidas. Tão triste, o que está ouvindo? Agora? Nós deveríamos escrever esse código. Então eu disse que a carga de trabalho está em execução. Agora, lembre-se sempre, temos que reforçar o código do servidor e, em seguida, subir porque o servidor é necessário não estava sem porta do servidor se você executar diretamente para ser um problema porque isso é um um cliente será, estou integrando. Deve ser sempre, você deve sempre lançar. E aqui eu vou mostrar, já que eu disse que veremos comunicação do soquete entre o servidor e o cliente. Aqui, você pode usar, você pode executar seu servidor em uma máquina host que é um laptop e você pode aprender idioma. E outro laptop que é outra máquina host que é hosts remotos. E você pode fazer a comunicação de soquete que estou tendo. Vou mostrar a você como fazer a comunicação do cliente do servidor de soquete em uma única máquina. Suponha que você esteja tendo apenas uma única máquina, então como você pode executá-la. Então isso também é possível. É que você precisa fazer algumas configurações, como você criará um processo de servidor e um processo cliente. Neste projeto, estamos usando esse IDE, que estamos usando é o IDE de bloco de código. Já criamos um projeto de repente que neste bloco IDE. Agora, para o cliente criar um projeto para o cliente, não podemos criar o projeto. O cliente neste ID em si. O que há neste código de bloco de código ID. Neste caso , ele diz que não podemos limpar porque ao mesmo tempo é necessário esse ID de bloco de código. Podemos executar um programa. Não podemos executar dois projetos. Quero dizer que não podemos executar meus projetos de piquenique em um único, na mesma instância em antes do bloco. Se você quiser que vários projetos sejam executados, inicie várias instâncias de registro de alimentos. Portanto, esta é apenas uma instância. Ou seja, cliquei no ID de bloco de código único e recebi essa instância. E aqui criei um projeto possível, então não posso criar outra linha POC do projeto e mesma instância no ID da coordenada e fazer a comunicação para isso. Você precisa criá-los que você tem na ID do bloco de código. Crie outra instância de ID de xilogravura e você precisa escrever código com bugs e, em seguida, você precisa fazer a comunicação entre eles. Portanto, por padrão, você não poderá criar a segunda instância do código mole sodium estará no horário do evento. Então, clicando na palavra amor a fazer para obter uma nova instância que você não obterá. Porque, por padrão, as configurações são feitas dessa maneira que toda vez que ele iniciará o mesmo ID de bloco de código. Mas agora temos que executar o servidor e o cliente em diferentes xilogravuras independentes desde o loop ascendente. Então, para isso, você precisa fazer as configurações. Já fiz as configurações no meu caso, mas para o seu caso, estive mostrando antes de escrever o programa do servidor como o clicou duas vezes no ID do bloco de código. E você tem que fazer essas configurações. E então você escreve o programa do servidor, o que eu ainda não fiz, qual fisioterapia? E então você compila o código, você o executa e, em seguida, pela segunda vez e clica em Código Block ID, você receberá a segunda instância oferecida e você estaria certo, esse código de linha, as configurações o que estou te mostrando. Lembre-se, você deve fazer isso antes de escrevê-los. Inibitório cerebral, atribuição completa, novo clique duplo na ID do bloco de código. Você precisa fazer as configurações. Então, como fazer isso? Recebemos a múltipla instância de xilogravura ID. Assim, vá para Configurações. Então você tem que ir à água e à água admitir que eu já fiz isso. Esse é um motivo. Já as mudanças que já estão lá, o que estou feito. Enquanto seu caso, você pode ver aqui permitir apenas uma instância em execução que está aqui. A caixa de seleção será marcada. Ele será verificado. Por padrão, ele é verificado. E eu já o desverifiquei. Porque eu tenho várias instâncias. Por padrão, essa caixa de seleção será marcada para permitir apenas uma instância em execução. E essa é uma razão toda vez que você inicia a ID do bloco de código, como obter o mesmo para o bloco lançado. Como isso é uma verificação por padrão, eu o desmarquei porque quero várias instâncias também a próxima coisa que é usada na instância já em execução que também é verificada por padrão. Então, basta desmarcar que também você, em vez de desmarcar o alinhamento na instância man running , bem como usar já em execução, desmarcou ambos, o que já fiz aquilo onde você não é possível ver essa marca de seleção nisso. Essas configurações são necessárias e verifique-as e, em seguida, clique em Ok. Agora vou criar outro projeto para o cliente. E você pode ver agora que isso me permitirá criar outro projeto. Eu tinha novamente clicado duas vezes na ID do bloco de código, recebi os novos projetos. Então você pode ver que um projeto é aquele que eu não escrevi o programa do servidor, e este é o outro projeto. Então, isso me permitiu criar outra instância do xilogravura e não projeto, é permitido. Portanto, esta é uma instância da coordenada em que executei outra instância no códon clicando duas vezes nela, não fui salvo. Instância em execução. Estado lançado. Não. O projeto para o cliente. Então clique em Arquivo, selecione Novo projeto. Clique nas etapas do aplicativo do console como equipe, apenas para que você tenha dois dentários cplusplus selecionados. Clique em Avançar, dê programação de soquete. Em seguida, clique em Avançar. Clique em. Ele despejará um programa padrão HelloWorld para você. Então eu já escrevi um programa de esboço e apenas copie colar aqui e explicar instruções linha a linha. Copiei colado aqui. codificação do lado do cliente é muito uma CDF simplesmente conectada. Veremos em apenas um segundo. Deixe-me aumentar o tamanho da fonte para que você esteja vendo você. Deixe-me fechar isso para que você possa ver mais claramente quaisquer instruções que estou mencionando. Este é o programa de linha. Nós mencionamos, porém, arquivos de crédito. Como estamos usando, estamos fazendo para o sistema operacional Windows. Agora, novamente, a principal função que você conhece, é um ponto de entrada para iniciar a execução de qualquer programa. Você tem que despejar o código aqui em si. Mesmo que você possa fazer sua função módulo, você pode simplesmente definir todas essas coisas em alguma função e você pode chamar essa função, mas sempre a partir da função média em novo, você tem que se perguntar a função simplesmente ano eu fiz o código. Sei que você pode ser um metal. Esses dados do WAC, que eu já disse, essa estrutura é um segundo argumento nesta inicialização do WSS, sabemos o que o WSS está empilhado. Ele é usado para inicializá-los e Socket Library. No primeiro argumento, o programa informa qual versão da biblioteca de soquetes de vento se você quiser usá-la. Como temos que usá-lo, queria usar a versão 2 Eu tenho sido biblioteca de soquete. Este é um argumento falso e segundo argumento é a estrutura. Esta função de inicialização preencherá esta estrutura na qual Devin Socket Library poderia passar. Vou enviar a comunicação sobre uma informação política. Ele enviará para este programa sobre quantos soquetes podem ser criados em outras informações, essa estrutura pode ser alimentada quando chamamos a inicialização bluesy. Esta estrutura que declaramos, declaramos a variável da estrutura dessa maneira, dados do WSU. Agora, o segundo objeto que estamos criando é para o soquete. Desde mim, eu seria chamado criando um soquete no lado do cliente e , portanto, VR na criação dela disponível nisso. E então estamos criando o vídeo antes disso, mas também estrutura porque passaremos os detalhes do pedido. Fomos o endereço IP e o número da porta ao qual o cliente deve se conectar. Ele deve estar se conectando ao servidor. Então, temos que escrever isso no endereço IP. Portanto, no nosso caso, já que estamos executando o servidor e o cliente na mesma máquina host. Portanto, o lado do cliente deve se conectar ao impulso local porque em meios de host local na mesma máquina host, o mesmo era a máquina porque na qual a clientela precisa ser executada na superfície. E porque estamos executando sete e cliente na mesma máquina host, portanto, podemos simplesmente fornecer o endereço IP na mesma máquina host que é uma brecha, quer usinar. O cliente não é um servidor de entrada em execução e disse que você precisa fornecer o mesmo número de porta que o servidor está ouvindo. Agora vou seguir a função de soquete. Nós tínhamos. Acho que o primeiro argumento que já lhe disse, é uma família de endereços da Internet. E o segundo é que o fluxo do tipo de soquete. O vapor não é confiável do tipo de soquete e todos os detalhes sobre o soquete que vimos no básico do soquete, quais são os recursos? Este soquete genético é confiável. Um, certo, é confiável. Tudo o que mencionei isso. E, em seguida, o terceiro é um protocolo de comunicação e o fluxo usa um padrão de PCB é 0 valor. Agora, esse soquete retornará um descritor para esse soquete. Descritor que você adquiriu você estará quando você comprou a função pai, você encontrará pausas. Como argumento disso, esse descritor de soquete passado humano em oposição ao argumento. Então, o que essas três coisas? Novamente, você quer, já que o cliente se conectará ao servidor. Portanto, os clientes inclinados, temos que preencher todos esses detalhes sobre o endereço IP e o número da porta. Como eu já lhe disse esse servidor e cliente, queremos nos comunicar através disso tudo, dada a mesma máquina host no único laptop, inclinação de deck único em si. Não queremos hospedar remotamente, não queremos laptops, clientes cerebrais e aprendizado. Vou indiferente. Notebooks diferentes sabem que estamos fazendo programação e mesma máquina host e salvou a própria máquina e, portanto, qual endereço IP você estará dando no lado da linha, simplesmente, queremos diabetes do host local porque host local de adição do cliente está executando servidores de origem executando quanta em execução no mesmo host. Quando você recebe essa maneira, isso significa que não há bordas traseiras. Eu expliquei que também na sessão anterior, isso significa que ele estará se conectando ao endereço IP do host local das notícias locais, seja lá o que for que tenhamos que resolver isso. E então estamos dando essa família de endereços e, como uma visão do que está ouvindo o número da porta 45555 e depo, estamos dando o mesmo número de porta. Se você tivesse mencionado um número de porta diferente. Você não mencionou esse número de porta aqui que ele diz no lado do cliente. Em seguida, estamos chamando a função de conexão. Função Connect. Estamos passando esse primeiro argumento como este descritor de soquete, que obtivemos disso. E então, neste descritor de soquete, então a segunda coisa que estamos passando essa estrutura, então o tamanho disso, apenas no lado do cliente, temos que chamar a função de desconexão. E uma vez que o cliente chama a função de conexão e, uma vez que o servidor aceita essa conexão, a comunicação de servidor para cliente, cliente para servidor pode acontecer. comunicação da Broadway pode acontecer. Então, aqui estou simplesmente enviando. Você também pode chamar a função de recebimento. Mas eu tinha facilitado muito ao chamá-lo em ambos os lados da função. Então eu estou enviando este mapa mental, enviando essa função olá você insana e passando esse descritivo em si, e depois passando em buffer, inicializei para o valor que é olá. E depois o tamanho da dívida. Então estou fechando a limpeza do soquete que vimos. É. Para fechar o soquete no caso do Windows, estamos chamando essas duas coisas para recursos. Então, todas essas coisas são necessárias para fechar a conexão do soquete no caso do Windows, eu expliquei qual é o propósito da limpeza e é assim que esse é o site inteiro da linha de produtos . Ou deixe-me compilar esse código agora clique em Construir, o pai, sem setas. Então eu acho que devo receber o erro de vinculação porque não fiz nenhuma configuração de vinculação para o link para a biblioteca quando 32, sua compilação e execução. Ok, eu já fiz isso é o motivo. Só um segundo. Deixe-me cruzar as configurações quadriculadas estatuto. Ok, esta biblioteca já foi adicionada. Na verdade, estamos criando o novo e estamos criando a nova instância. Essas configurações já não são. Então essa é uma razão pela qual você não tem nenhum link. Certo? Então você tem saída aqui. Este 2 segundo, este cliente, temos o cliente de lançamento. Agora você pode ver que recebemos a primeira mensagem conectada ao servidor. Esta mensagem vem quando o lado do cliente está enviando a conexão e, uma vez que o servidor aceita uma conexão, somente você receberá essa mensagem conectada ao servidor. Então, o que acontece é tão aceita a conexão. Então você tem esta primeira mensagem do Reino Unido. Nove, ele está conectado ao lado dele. Então, no lado de um cliente, estamos passando esta mensagem Olá. O cliente está enviando esta mensagem olá e temos toda a função de recebimento do servidor. Portanto, ele deve sair desta mensagem e imprimi-la. Esta mensagem que temos, estamos enviando realmente do lado do cliente. Estamos enviando isso como Olá e lado indecidível. Deixe-me abrir o código do lado do servidor. Este é um código do lado do servidor. Ele está recebendo a mensagem do cliente, por isso é coletada na fivela e estamos imprimindo na citometria da parede lateral, veja o console no lado do servidor. Então, quando você vê o console do lado do servidor, você o verá, digamos, ele diz que o cliente desconectado. Ele diz que o cliente líquido está dizendo que as fontes de saudação diminuem mais rapidamente. Olá mensagem que vimos e que é recebida no lado do servidor. E porque eu disse que o vírus tem, mas na verdade essa mensagem no console, como o leão diz Olá, veja no serviço que fui contratado. O que quer que tenha recebido aqui, ele foi conectado em Buffalo e depois está imprimindo. Aqui está o cliente que vê qual suprimento está decrescente. Olá Dakota, está impresso nesse lado. Então essa é a razão pela qual você recebeu olá. É assim que você pode ter visto como o cliente está conectado ao servidor. E acho que passando uma conexão com o servidor, servidor está aceitando. E, em seguida, o cliente está enviando a mensagem e escrevendo a mensagem enviada. E, em seguida, está recebendo essa mensagem dizendo que a linha disse olá, e então estamos nos desconectando do que o cliente fica, foi desconectado porque ligamos. Depende de como você executou a edição, a codificação do seu programa. Desde que fechamos o soquete desse cliente, portanto, ele foi desconectado. Mas lembre-se sempre, você não pode fechar o soquete para o servidor e informar a um analista que você não fecha o soquete, o cliente porque os servidores em um dos quais todos os clientes estarão se conectando. Não parece um demônio. Foi assim que vimos a comunicação do soquete calçada nove para o sistema operacional Windows. Vou dizer que você comprou fora. Você entendeu e ele tinha visto a execução da palestra. Estou acabado por enquanto. Obrigado. Muito obrigado. 12. Socket Session8 Session8 Communication Linux C Parte 1: Bem-vindo a esta nova sessão de programação de soquete para Linux. Então aqui nesta sessão me deu a escrever o código para o lado do sistema Linux da nossa programação de soquete de cliente e também o executaremos. Na sessão anterior, escrevemos o programa para o servidor, bem como o cliente usando C mais o que as janelas. E vimos como criar um novo projeto no IDE, no ID do bloco para o Windows e várias configurações são necessárias antes, acompanhar e executar o programa de cibercrime. Nós vimos e o executamos. Não fizemos a linha da calçada da comunicação. Agora vamos fazer um servidor, programação de soquete de cliente no Linux, sistema VM Linux usando linguagem C, e também o executaremos antes da sessão. Também vimos diferença de mortalidade ou não nos métodos para o Windows e para Linux. E então, com uma diferença muito mínima e configure quais mudanças são necessárias para o circuito. Nós passamos pela apresentação e explicamos, você. Veja conselhos práticos. Vamos começar por aqui. A primeira configuração necessária é que você tenha que ter certeza de que não está tendo um sistema de índice válido no seu caso. E como faremos o programa para que você não precise instalar nenhum ID de bloco de código. Então, aqui em si, existem maneiras de escrever seu programa se quiser executar usando a janela Dui, você pode instalar isso. Eu usei um prompt de comando simples. Então, quais outras coisas estão disponíveis por padrão no Linux ou você começou a si mesmo, eu não preciso instalar nada necessário porque já para o Linux, se você falar sobre os linears diretamente, você pode ir para o prompt de comando. Se você estiver tendo o GCC instalado, por padrão, você receberá esse GCC. Gcc é uma ferramenta para compilar o seu programa. E você também pode executar qualquer saída que você obterá. Você pode executá-lo diretamente. O suporte, esta saída, isso foi criado. Então, vou mostrar cada um e tudo passo a passo. Também. No meu caso, mostrei essas máquinas desde que estou tendo este laptop configurado para a máquina Window, não estou tendo o suficiente. Mas quem te faz explicar? Para quem você escreveu o código? Servidor, Cliente ou Linux? Eu também instalei no meu sistema Windows em si ou a VM Linux atendeu. Então nós incorporamos, você pode estar sabendo que é uma máquina virtual. Se você está tendo um sistema operacional diferente aqui, no meu caso, estou tendo janelas, mas também quero escrever o programa para o Lena. Então, se você quiser para a compilação cruzada, se você deve um sistema operacional diferente que você deseja, você tem que escrever o programa. Você pode instalar diretamente o VirtualBox. E a partir daí você pode escrever, você pode obter um download da imagem ISO, ISO para o sistema operacional desejado. Então, por que meu caso eu queria para o sistema Linux, porque eu queria explicar o servidor de soquete, comunicação de código do cliente e a execução no Linux. E já tenho relatório do Windows. Eu baixei ISO para Lena até agora você não é nada o que é necessário. Você está tendo um sistema Linux. Você pode escrever o código diretamente. Você terá os comunistas decididos no sistema Hat Linux. Estou tendo janelas. Mas para também executar o programa para leaners, tenho que instalar o VirtualBox. Basta considerar que você está tendo a máquina Linux. Portanto, mesmo que você instale o VirtualBox, se você não estiver tendo Linux, você pode baixar a imagem para isso. E se você tiver feito sua máquina configurada para linear, então isso é simples. Então aqui também, considere que você está tendo abdominal para a máquina Linux. Você terá, por padrão, determinantes. Vamos ver como ir. Então, vamos ver a pré-visualização, o que todas as coisas você estará abordando nesta sessão. Existem diferentes métodos de soquete de outro servidor apenas para repetir e gráfico. Ele cria soquete. No lado do servidor, você precisa criar um soquete, então você precisa encontrar. Portanto, todos esses métodos são comuns a isso para as janelas, apenas no caso de você ver que é um método não presente no caso de Vênus, ou seja, wx, uma função de dados do método WSS. Essa função estava morta no NAEP ou no código da máquina Windows , bem como para o cliente apostaria. Alina, eu já mencionei que a inicialização do WAS, função de inicialização necessária para inicializar que foi direcionada biblioteca não está presente no caso desta máquina Linux que é apenas a diferença. E essas outras funções que existem são quase as mesmas. Só essa parte desconectando a da Nina. A sintaxe será diferente e há alguma diferença estrutural. Então eu vou te mostrar. Se os métodos de soquete do cliente novamente, a mesma coisa que a função de dados WAS não existe, o que é específico para o Windows. Isso é para criar um soquete, conectar-se ao servidor receber dados e depois desconectar. Em seguida, os métodos e dados estruturados específicos, novos, específicos para o Linnaeus conhecem função WSS Startup usando Linux, que eu disse que isso foi feito no Windows, então a função de fechamento também é diferente. No caso do Linux, o soviético tem que chamar a função de fechamento. Mas no caso do Windows, vimos que temos que chamar o soquete. E isso também é WAS como Nina necessária para desconectar o soquete. Então, toda essa função estava lá apenas para a plataforma Windows. No caso do Linux, estamos tendo a função de divulgação. Em seguida, o tipo do descritor de soquete que é retornado chamando a função de soquete é diferente. Então aqui, quando chamamos a função de soquete no servidor e no cliente, então ele retornará descritor de soquete na janela basalts, era o mesmo tipo de descritor de soquete é diferente em caso de retorno linear no tipo. E nesse caso, muitas vezes o Windows, ele retorna soquete. Aqui, quando escrevermos o programa, você entenderá que acabei de fazer ou o que você tem, acabei de escrever todos para você. Depois, há diferentes. Este tipo de estrutura de endereço de soquete é diferente se houver diferenças um pouco apertadas. Os mesmos métodos ou tipo de dados estão lá. Específico para o Linux? Como esse tipo de soquete ou destruição é diferente. Então, este estoque, você sabe que essa estrutura de endereço de soquete, o que fazemos aqui, você o preenche com os detalhes do endereço IP, bem como o número da porta. Já que isso é diferente. Portanto, você sabe que a ideia de produto ou serviço chamando a função de texto. Então, nisso, exceto por uma função, usamos esse arquétipo, essa estrutura. Portanto, como o tipo é diferente, portanto, o, isso mudará na função de saída também para o lado do cliente que chamamos de Connect. Então, novamente, usamos essa estrutura de endereço de soquete. Então, isso será diferente. O tipo será diferente em um soquete ID foi atingido burro, ele usa a função iônica. Então, mesmo vê-los dividir a escrita do programa, não se preocupe com isso, em relação ao arquivo de cabeçalho, os arquivos de cabeçalho necessários para o Linux serão diferentes em comparação com o das janelas. Agora, essa outra diferença, agora vamos começar a escrever o programa ou o código do servidor e a programação do soquete da porta do cliente no Linux. Mais uma vez, você já assumindo que você está tendo um sistema Linux aqui e você está, você está prestes a escrever um código. Então, eu o tornei flexível. Estou cobrindo todas e todas as coisas aqui. Mesmo se você escrever a programação para processo de programação de soquete de aplicação para Windows, você pode consultar a sessão anterior e se você estiver tendo a máquina Linux, poderá gravar a sessão. Assim, para o Windows também cobriu programação e execução e quatro unidades e publicação para que você esteja em 14 escrevendo o código para máquina diferente e diferente ou você se sinta confortável com isso. Então, essa é a razão pela qual mencionei uma diferença e o código em fazer você entender a diferença no QI. Vamos começar. Vou abrir meu dominante do dominante e estaremos escrevendo o código. Vamos abrir. Deixe-me escrever o pessoal deles. Certo. Este é o meu dominante da VM. Deixe-me voltar. Então eu suponho que você queira, se você estiver iniciando a máquina Linux da sala de diretoria de código, você está ciente dos comandos. Isso é como se você estiver confortável com o Windows, você pode ir para a sessão de áudio. E se você estiver, você quer escrever um programa para Linux, você deve estar ciente de coisas básicas como ls. O que Ls está fazendo? Então, no Linux, usamos principalmente esse prompt de comando. Este é o nosso terminal. Na verdade, eu abri. Você pode ver o nome dominante. E eu só, você deve saber os comandos básicos no Linux se você quiser escrever o código aqui, se você quiser entender como voltar para o diretório anterior ou exibir o que Einstein nos disse em um diretório específico. Então eu sou, e você pode ver meu PWD, Esta é a minha parte que é meu nome. E atualizei o nome da pasta pela programação do soquete MKDIR. E aqui se eu fizer ls e já escrevi o código para soquete, pode coordenar soquete vários tribunais. Então, vou abrir este código para você neste formulário. Esses somos dois de nós. Em vez de ter arquivos C, presidente, vou passar por essas janelas e mostrarei o arquivo C. Vou mostrar-lhe cada instrução que são usadas. É quase semelhante ao da janela, apenas um pouco diferente é que eu não, não quero começar a escrever Internet a cada instrução nove por nove, então eu já escrevi aqui. Não quero perder tempo e escrevê-lo. Você já vai ficar cansado disso porque quase tudo é semelhante à diferença de função específica, diferença estruturada e 100 defesas diferentes lá. Isso Ls. Agora, para começar com o código do servidor, deixe-me abrir esta pasta. No ponto de atualização do servidor SOC c. Agora, como abrir este arquivo usando este dominante, posso abrir diretamente pelo VI disse sobre o ponto de atualização c. Eu posso abrir diretamente esse arquivo dessa maneira. Você pode ver que esse é o código do código do servidor. Vou fazer você explicar. Mesmo se você quiser ver através do Bloco de Notas, você pode ir para a pasta e você pode fazer sua programação de soquete que eu criei e isso é uma espécie de vertical. Você pode abri-lo diretamente. Ou você pode abrir dessa maneira. Este é o mesmo pote ou você pode referir que dominam cada pé. Então, qualquer coisa que você possa ir? Acho que sim. O que é humor, como você pode ter? Então, isso é mais claro, na verdade, você pode ver aqui, então deixe-me abri-lo no próprio Bloco de Notas. Este documento em si. Primeiro de tudo sozinho, vou explicar como compilá-lo para meus alunos. Veja o programa, esses arquivos de cabeçalho que eu já mencionei você. Isto é antes de tudo, o código do servidor para o Lena. Já me disseram a diferença nos arquivos de cabeçalho para o Linux e para o Windows e a sessão anterior. Se você não passou por isso, você deve passar por ele para ter mais aspas simples. Então, esses são os arquivos ocultos usados para o Linux, que programação de soquete. Você pode fazer a verificação cruzada mais tarde. Então. Esta é uma função principal. Então aqui em si teremos uma função principal onde escrevemos nosso código. Então eu disse que esta função principal é um ponto de entrada para começar. É um ponto de entrada para iniciar uma execução do seu programa. Assim, sempre que seu programa for executado, isso vem muito rápido nesta função principal e o que quer que você esteja escrevendo aqui, será executado linha a linha. Então, vamos ver aqui o que fizemos. Então você pode ver aqui que há duas variáveis pelo servidor de nomes e cliente, e eu inicializei para 0. Seu tipo de dados é inteiro. Esta é uma diferença, na verdade, postar que está aqui. Você pode ver aqui, essas são variáveis de fornecedores de dados específicos do Linux , o servidor e o cliente são usados aqui. Portanto, esses são o descritor de soquete. Então eu lhe disse nesta apresentação, então chamamos a função de soquete descritor de soquete que os visitantes retornaram. Seu tipo de dados é diferente. É tipo em digital no caso no Linux, mas no caso do Windows, ele tinha visto isso como de seus tipos soquete, SOC capital, soquete QE2. Então, espero que você percorra essa sessão se quiser ser específico para o Windows. Então isso é um dinheiro. Esses são os descritores. Então, por isso em mim, meu descritor apenas do identificador de soquete. Você operará no tubo de soquete e chamará as diferentes funções, como comprar, ouvir, sair na placa. Você usará este descritor de soquete de causa adobe para o servidor. Esse tipo de dados é diferente. Novamente, a segunda coisa aqui eu disse que o endereço da estrutura do soquete é diferente. Então você pode ver aqui que estamos escrevendo struct. Isso, esse tipo de estrutura. Estamos criando a variável dela. Esse é o servidor ADD neste bilhão dos EUA. Isso também é específico para o Linux. Isso é diferente se você comparar com o das janelas. Agora, aqui, esta estrutura, está cheia de, está tendo tantos membros nela. Então eu disse que meus desmembros são usados no porque o que aconteceu no lado do nosso lado, eu disse que temos dois. Se houver, a comunicação com o servidor e o cliente ocorrerá. Temos que custar a compra da barra lateral. Se você escrever o código para o servidor, para a barra lateral, ele deve ser vinculado ao endereço IP específico e ao número da porta. Depois de vincular isso, isso significa que, nesse caso, o cliente deseja se conectar ao servidor. Como eu entendo realmente o que é o lado que tivemos é o servidor apenas pensando com ele, com o endereço IP onde ele está comprando também, bem como o número da porta. Portanto, o motivo pelo qual precisamos, sempre que estamos escrevendo o servidor ou você deve vinculá-lo ao endereço IP e números de porta. cliente íntimo quer se conectar ao servidor. Ele estará se conectando, ele estará afundando com o mesmo endereço IP e número de porta para cortar se comunicar com ele para que isso seja n aqui o que nós instrutores fazendo, o endereço do servidor, estamos preenchendo a estrutura à qual endereço IP e o número da porta onde o servidor se vinculará. Portanto, essa função nomeia-a como expliquei em detalhes na sessão de áudio também. E eu consegui os métodos que são usados para as unidades e para as janelas com discussão cantando com uma porta Eu também, você passou pela sessão. Agora. Você pode ver que eu escrevi isso IN ADD ou qualquer sublinhado e você explicou a mesma coisa, na verdade, se for banido para o Windows também, o que ele faz? Isso significa que ele está vinculando a todas as interfaces de rede que estão presentes na máquina host em que o servidor está sendo executado. Portanto, isso significa que se você estiver conectado ao terreno, ele terá um endereço IP diferente. Portanto, essa é uma interface de rede. Se você estiver conectado ao Wi-Fi, ele terá um endereço IP diferente e isso é interfaces de rede diferentes. Assim, sua barra lateral se vinculará a qualquer uma das interfaces de rede estranhas, o que você usa em sua máquina, que sabedoria nesta máquina onde você está executando nosso servidor. Então isso significa que, para que estejamos dando essa variável, estamos atribuindo isso. E, em seguida, adicionamos escrever os números de porta. Todos os momentos lutam contra esse número da porta. Assim, você pode usar todos os números maiores que 102465 por três pi porque ainda 1024 já está ocupado. Portanto, se você usar qualquer número de porta maior que 1024, então o que você estiver usando o número da porta para a barra lateral onde ele será vinculado. Para a mentalidade do trombo, você precisa se conectar ao mesmo número de porta. E esta é uma família de endereços infantis familiares. Então, seu ar nele. Então, como estamos usando IPv4, por padrão, por padrão, se eu sublinhado íon e esta é a função de ligação. Estamos usando. Isso, estamos analisando este lado do disco do descritor de soquete ocular. E então estamos passando essa estrutura que temos fracasso. Você tem que construir essa estrutura aqui. Estamos passando sua digitação TO para esses tipos e atualizamos isso. Então estamos mencionando o tamanho dessa estrutura. Então estamos chamando a função de escuta. Assim, podemos ver que as mesmas funções existem para o Linux também apenas diferenças de tipo que ele está retornando no menu de identificador de soquete de tipo. Novamente, ele estará ouvindo na passagem deste identificador de soquete aqui no primeiro argumento. No segundo, quantos números você deseja na fila de espera para as solicitações de conexão para linhas diferentes. Então aqui, desde 0, não quero que nenhuma outra conexão de cliente esteja na fila, então eu escrevi 0. Você pode modificar seu código, dependendo do requisito de poesia humana e ação do cliente para estar no tubo. O atual é executado. Você novamente dá, dê esse número. Você vai ouvir. Ouça significa que ele estará ouvindo esse soquete. Então aqui estamos imprimindo a mensagem lado a lado que está ouvindo as conexões recebidas. 13. Socket Session8 Session8 Communication Linux C Parte 2: Estou declarando uma variável. Eu sou, este é um tipo n string porque é uma matriz de caracteres. Aqui na função de saída estou chamando a função exit. Assim que o site de um pãezinho recusar, envie uma solicitação para o servidor. Ele aceitará e significava que aceitou. Então, o que for publicado, passaremos a mesma alça de soquete que obtivemos deste soquete. E a estrutura aqui, é aqui que estamos inicializando como nulo e nulo. Aqui ele retornará aplicando descritivo. Aqui, isso será diferente do direito. Como também mencionei você, o identificador do soquete que é retornado da função de soquete. Ele é usado para que ele seja envolvido em aceitar a conexão do lado do cliente. Enquanto esse identificador de soquete, que é retornado, exceto será envolvido em operações de leitura e gravação da rede, o cliente. Então, ambos serão diferentes. Um uso para o propósito diferente e também são diferentes. Portanto, esse descritor de soquete, que obtemos, estará relacionado, talvez com os dados do cliente. Então, mesmo que você possa usar uma maneira independente, você está aqui e eu estarei lendo. Portanto, o cliente está usando o mesmo tipo de placa em que vimos no Windows. O cliente está enviando alguma mensagem, diga olá. E então este é o conjunto de estranhos. Será girado, aceitará a conexão do Dr. lines, e ele estará lendo os ensaios de qualquer coisa que o cliente tenha enviado para ele. Então, aqui estamos chamando a função. Aqui estamos usando a função de leitura. Se o cliente descritivo e esse buffer. Aqui nós já declaramos essa variável e qualquer senso de conjunto de clientes será coletado nesse buffer, e esses são os tamanhos que você está mencionando. Então eu imprimi essa fivela. Essa é a mensagem que recusou, descendente. Então mm disse, mas fazendo isso 00 esta fivela. Agora estou fechando o soquete que está lá para o cliente e, em seguida, o cliente desconectado. Então você entende o que premiamos, exceto a função, o que ele retorna será pesado relacionado ao soquete do backplane. Após o uso, estou desconectando-o. Isso é o que estamos fazendo. Então, na maioria das coisas, são semelhantes. Essa máquina Prado Windows que vimos? Este é o código do lado do servidor. Agora. Desculpe. Oh, desculpe. Este é um antigo preconceito para o mar. Deixe-me abrir o dominante deles. Sim. Este é o código, espero que você esteja ciente desses comandos, o que significa que se você quiser abrir através da goma de, você pode usar este editor VIM, e você pode abrir o arquivo. Então, esses linears vêm. Suponho que você esteja ciente se você está escrevendo o programa no Linux. E todos os métodos que expliquei que são específicos para os servidores, então vamos compilá-lo, mas vamos ver como compilar esse código. Temos que usar esse GCC, então eu não instalei nada nesta máquina Linux. Então realmente este GCC, é uma ferramenta de compilador básico para compilar o programa C, estão diretamente disponíveis sempre que você instalar. Sempre que você estiver tendo máquina Linux, você terá esse GCC básico, agradável o ar para que você possa compilar o código. Gcc, você pode compilar o código C. Eu não escrevi tudo, basta digitar o arquivo gcc, que eu mostrei o código do servidor, como compilá-lo no comando do GCC e, em seguida, esse nome do arquivo e do tornozelo. Quando eu faço ls, você pode ver que ele criou um ponto fora que isso é meu. Depois de compilar o código que obteve. Agora, para executá-lo, simplesmente não vou correr. Agora deixe-me mostrar qual é o código do cliente. Agora também uma coisa que eu expliquei sempre que você tem que fazer a programação de soquete entre servidor e cliente, como você fez o quê? A máquina Windows. Se você usa vídeos, o xilogravura IDE, pensei que você não faria neste IDE, ID de bloco de madeira, você sabe, você não pode criar 22 decks, um projeto e uma linha de produtos. E você não pode fazer a comunicação entre eles se quiser fazer na mesma máquina host, se quiser fazer essa comunicação entre servidor e cliente na mesma máquina host, então essa é a mesma máquina. Então você precisa abrir a coincidência do ID de xilogravura no caso do Windows, eu fiz, eu mostrei que é abertura ascendente para instância, ID de bloco estranho, porque por padrão não permite e nós criamos, abrimos para instância de xilogravura ID. Uma instância que criamos um projeto, dividida ou calçada, e em outra instância de bloco de código somos criados nesse código de modelo de objeto de linha. E então fizemos a obrigação de soquete. Agora aqui novamente, vou, vou mostrar a vocês a comunicação do cliente do servidor de soquete na mesma máquina da Lena. Como estou usando esse GCC, estou usando esse dominante para compilar meu código para executá-lo. Portanto, você não precisa fazer nenhuma configuração. Você acabou de abrir outro terminal. Este é um dominante, em que você aprenderá o código do servidor, compilando o código para o servidor e executando-o. E outro dominante estaremos correndo de guarda. Depois de compilar o código do cliente, você estará entrando em outro terminal. Então você será muito curto ou aberto a diferentes comunistas diferentes, em que você estará executando um servidor, sempre que você deveria executar o servidor. Então, de lado, sempre deve ser falso porque esse é o principal Damon. Clientes diferentes e diferentes. Então isso pode se conectar a ele. Se você não executar o solver, você executa o nó do cliente, não é possível, você não deve, isso não funcionará. Tão triste o que deve correr primeiro? Porque o cliente que se conecta ao servidor, então precisaremos de uma comunicação para ser executado tipo que eu não planejei. Teremos abertos em nominal. Vou te mostrar que você me deixa pesquisar. Sim. Você estará executando isso dentro do nosso código em outro terminal que eu loop. Vamos ver postagens, a porta do cliente e, em seguida, estaremos compilando e você estará executando o código do cliente. Mas uma vez que o código do servidor, apenas entenda que um terminal estará executando Server Core e outro dominante, você teria feito código inclinado. Deixe-me abrir outro dominante. Dominante. Você tem essa opção. Agora você pode ver outro terminal é, este é outro terminal lá. Vou passar pelo código. O código do cliente. Agora, vamos ver o código do cliente. Já vimos o código do servidor. Novamente, o código do cliente é muito curto na verdade. Você pode ver aqui, isso corresponde a esse código de linha, isso, deixe-me maximizá-lo. Este é apenas o código do cliente. Então, antes de tudo, os arquivos de cabeçalho que você precisa escrever para a dívida serão diferentes daqueles das janelas. Estes são os arquivos de cabeçalho do soquete para a máquina Linux. Então, novamente, a função principal que é um ponto de entrada. Agora, caso eu dissesse que temos que simplesmente criar um soquete e temos que chamar a função de conexão. E então não escrevemos a operação. Essa é apenas a diferença. Essa é apenas a pequena placa para o cliente em comparação com a do servo. Mais uma vez, vamos escrever um site da Salk. Este será o identificador do soquete, que é do tipo inteiro diferente do das janelas. Aqui, novamente, o endereço de soquete que também é defensivo e tipo de dados. Agora estamos chamando a função de soquete. Então aqui, sempre lembre-se sempre que temos que fazer a comunicação entre servidor e cliente deve ter o mesmo segundo argumento que é passado no soquete é o tipo de soquete. Você deve ter o mesmo tipo de soquete. Pode ser transmitido do tipo sobre ele pode ser fraldas de fluxo do tipo datagrama. Usando o protocolo de comunicação TCP, ele é confiável, enquanto o datagrama está usando UDP, o que não é relevante. Então, na maioria das vezes ele usa TCP em mim. Portanto, ambos os lados do serviço também geralmente quando você cria um soquete, esse tipo deve ser do tipo de fluxo. E se você estiver usando aqui o fluxo. Então, ambos devem ter o mesmo tipo. Ambos ao extremo são ambos devem ter tipo datagrama para vir em ordem de comunicação para dúctil, que significa assentamento em plantas. Então, estamos chamando a função de soquete. Primeiro argumento, estamos passando a família de endereços da Internet, depois dipolo do fluxo de soquete e Lindsey Nicole, o protocolo de comunicação. Então isso retornará uma alça para o soquete de linha escura. Você tem, você está criando o produto de soquete. Retrospectiva. Ele vai. Eu editei esse nome de variável. Então eu escrevi o nome tipo de sal porque ele estará se conectando ao servidor. Há um motivo, mas esse soquete que estamos criando para eles. Cliente. Novamente, destruição, que é ENTÃO eu disse a você a estrutura que você tem que preencher. Primeiro de tudo, no lado do cliente estará escrevendo o endereço IP do servidor, que é o mesmo. Esse endereço IP deve ser o mesmo ao qual o servidor está vinculado, e o número da porta também deve estar vendo por que eu dei $127 No.1 e explicá-lo. Isso é chamado de endereço de loop back porque, como somos, nós somos, queremos fazer a comunicação no mesmo sistema. Nesse mesmo sistema, meu servidor está sendo executado e meu cliente também vou parar de comer. Estou. Portanto, como é o mesmo eco do sistema este ano, isso significa que ele se reporta ao endereço IP local, que está morto na máquina host. Neste endereço IP local lochia, o servidor também está em execução. Portanto, estamos simplesmente mencionando $127 ponto um. Isso significa relatar o endereço local desta máquina host porque sabemos que nosso servidor está sendo executado nesta máquina host local. Isso significa que ele está afundando para o mesmo endereço IP que o servidor está sendo executado. E o número da porta é por isso cinco vezes, quatro vezes cinco. Porque aqui temos comprando o servidor para esse número de porta. Se você tivesse fichários, comprei dois números de telefone diferentes, digamos 9994 vezes nove, então você teria dado aqui quatro vezes nove. Seja qual for o número da porta ao qual você, seu servidor se vincula, o lado do cliente deve se conectar ao mesmo número de porta. Isso é tudo o que preenchemos aqui nesta estrutura. Isso é isso. E então, quando chamamos a função de conexão, passaremos o primeiro argumento é o identificador do soquete, que retornamos deste valor chamando a função de soquete e esta estrutura que preenchemos o endereço IP e o número da porta e depois o tamanho. E então escrevemos no lado do cliente conectado ao servidor, porque depois que a conexão estiver concluída, essa mensagem será impressa do lado do cliente, dizendo conectado a este cliente está conectado ao solucionador. Então temos, já que em nosso programa estamos enviando a mensagem. Estamos escrevendo a mensagem do lado do cliente e vamos lê-la e, portanto, site do servidor. Que mensagem estamos enviando, estamos enviando simples olá. Aqui. Estamos inicializando essa string que é uma matriz de caracteres com essa saudação. E deixe-me chamar a função certa. O primeiro argumento é tratado dos sedimentos fora da alça do soquete e, em seguida, segundo argumento como buffer, que estamos inicializando para esse valor. Queremos que esse valor seja passado para a mensagem do servidor para ser passado para o comprimento prateado disso. Portanto, estamos chamando a função certa pela função correta. Mencionando neste soquete, temos que enviar este buffer de mensagem que é saudação para o servidor do lado do cliente. Este é um lado do cliente. Em seguida, estamos imprimindo a mensagem. Essa mensagem é enviada para chamar esse rapier, gastando mal a mensagem no site do cliente. Mas esta espinha dorsal, e então estamos fechando essa alça e depois o soquete fechado. Portanto, esse é o código do site do cliente. Então você pode ver isso pronto, simples e z. Agora eu abro outro terminal. Vamos para a substância. Temos que sempre executar código de servidor mais rápido para que o executaremos. Então eu vou abrir. Eu executei código de servidor de parede post-hoc. Como executá-lo simplesmente mencionando por que mencionei essa barra de pontos, porque isso significa que estou neste diretório atual na pasta e vou executar isso. Um ponto para fora, ponto fora está presente nesta própria pasta. Então, quando eu executar, receberei o lado do servidor, essa mensagem que está escutando a conexão recebida. Agora o servidor está escutando. Agora temos que executar o código do nosso cliente com um metro. Depois de executarmos o código, cliente deve se conectar a esse cliente de serviço desconectado. Em seguida, o cliente deve enviar uma mensagem para o servidor e nós estaremos lendo no lado do servidor, você verá uma mensagem de boas-vindas de que US$0,09 será exibida no terminal do cliente. E você pode ver lado a lado se essa mensagem também é lida e impressa no lado do servidor no serviço Agora podemos ver na escuta para conexão de entrada, vamos executar o cliente código também. Então deixe-me abrir o acorde dominante. Então publique eu vou compilar esse código do cliente simplesmente por essa função, DCC e o nome do arquivo. Quando você executa, você verá apenas um ponto fora que é a saída produzida após a compilação. Agora devemos executá-lo. Então aqui você pode ver que deseja a mensagem no lado do cliente que se conectou à mensagem de vários fornecedores enviada com buffers chegando quando o cliente está enviando alguma mensagem para o servidor, então esta mensagem vem. Então, vamos abrir o serviço. Não deixei ver se a mensagem chegou lá e as informações foram atualizadas. Sim, você pode ver depois desta escuta para conexão de entrada, neste modo, podemos jogar com segurança na linha do site do servidor conectada. O cliente diz que o buffer é olá. Do lado do cliente, o que eu quero dizer acabou de perguntar que você pode imprimir linha diz, mas, mas é olá. E então nós temos a função desconectada disso também a partir daqui. Isso é o que estamos fazendo. Você pode ver como essa comunicação ocorre. Então, é só que estou enviando a mensagem do cliente e estou lendo a mensagem, estou escrevendo a mensagem do cliente e estou lendo no lado do servidor. Assim, você pode escrever e ler no servidor, bem como no cliente. Você pode ter qualquer comunicação bidirecional em alelo. Então você não explica apenas a sintaxe que eu escrevi do lado do cliente e li no lado do servidor. Então você pode fazer Weiss era eu e você pode escrever e ler e fazer o cheque. O bate-papo de servidor para cliente. Eu também sou. Então, isso é o que vimos, como essa obrigação de soquete explica como a mensagem é enviada e o que todas as funções, estrutura diferente, diferença de cabeçalho móvel diferente não. Deixe-me passar para o segundo. Deixe-me, deixe-me voltar à minha apresentação será feito vendo todas essas coisas que estão lá. Temos que terminamos com o servidor, programação do soquete do cliente. Fizemos em linguagem C o que o Linux e também o executamos. Estou acabado por enquanto. Obrigado. Muito obrigado. 14. Socket Session8 Session8 Communication Linux C++: Bem-vindo a esta nova sessão quatro, et cetera, programação de soquete do cliente e veja o sangue dividir nozes trimestrais com sua execução. Então, antes desta sessão, passamos pela sessão para servidor, programação de soquete de cliente em linguagem C ou Linux com sua execução. Então, escrevemos o código C para a linha de calçada de soquete, e fizemos sua comunicação enquanto o sistema Linux, vimos como o cliente e servidor eles se comunicam entre si. Agora, estaremos mergulhando o código C plus e o sistema operacional Linux, e estaremos realizando programação de soquete para cibercrime não é muita diferença Na necessidade. O compilador será diferente. Então, vimos, usamos no Linux para compilar o programa C. Você usou o GCC, mas usaremos no GPS porque essa é apenas a diferença. E algumas funções que chamaremos de entrada e saída do quarto serão diferentes seios todas as funções relacionadas ao soquete serão as mesmas. Isso não é muita diferença. Assim, podemos passar rapidamente pela sessão, pois é quase, quase semelhante ao conjunto de diretrizes que tenho programado em C no Linux. Acabei de cima da porta Jens. Três funções, funções de chamada serão diferentes como são usadas, é fluido para inserir no console. Vamos ver. Só para mostrar, como se você pudesse fazer a política de codificação, você pode fazer a codificação para cplusplus apenas o compilador dois estará mudando. Vamos passar rapidamente pela sessão em detalhes. Se você quiser passar pela sessão anterior, que eu tinha explicado em detalhes o mesmo programa e ver o que o Linux. Então eu estou indo para cá feio porque são simplesmente as coisas repetitivas sobre a diferença mínima, diferença biológica e algumas funções de chamada diferentes. Novamente, a mesma coisa aqui para os métodos de soquete do servidor para linear, já que estaremos realizando isso, que essas funções separam não está criando o soquete, vinculando-o a todas as coisas se você comparar com a máquina Windows será semelhante, mas uma função não está presente. Para o Linux. Ou seja, embora a inicialização do WAC e quando nos desconectamos do soquete, a sintaxe seria a diferença em comparação com a das janelas do CC plus plus. mesmas funcionalidades são que não há diferença no Texas também visto. Isso não é diferente e a programação de soquete usando C e C plus em nenhuma ferramenta de compilador e algumas funções de chamada relacionadas à entrada e saída são diferentes. Nós estaremos compilando o código usando g plus plus aqui em caso de escrita, quando você terminar de escrever o código e o cplusplus. E então ele o executará. Agora, perto dos métodos de soquete do cliente. A mesma coisa que preciso fazer, pois uma startup não está presente. Essa sintaxe é diferente de ter o mesmo para C e C plus plus mudará. A mesma coisa com o Dr. abordado na sessão anterior. Isso é para o Linux específico, esses são os métodos e dados estruturados que não são uma função versus Startup usada no caso do Linux, como eu disse agora. Então, a próxima coisa, perder funções diferentes IW ou perdê-las soquete. Estamos chamando a função que, em comparação com as janelas que não fizeram soquete de cola Macondo no limite de doença do WE. Então isso é diferente no caso de você comparar com o Linux, eu vou te ver. É semelhante, é o mesmo. E um descritor de soquete dipolo, ele é acionado chamando a função de soquete é escrito. Portanto, essa é uma diferença específica para Venus porque, para o Windows, o descritor de soquete e, em seguida, retornar gravações, a função de soquete será diferente em comparação com o Linux. Vimos que na sessão anterior na programação c para no sistema Linux que chamamos a função de soquete de soquete. E então conseguimos, obter o tipo de alça de soquete é do tipo inteiro no caso do Linux, mas no caso do Windows, vimos isso como outros tipos oferecidos SOC capital Katie, isso é uma diferença. Mas para CC plus, além das mesmas funcionalidades estão mortas. Nenhuma alteração nisso. E então estrutura desorganizada ou listrada é diferente. Novamente, específico para a estrutura de endereços Linux será usado para a leitura do soquete e realmente revelando diabetes. E o número da porta que dipolo esse soquete e reestruturado é diferente no caso de Vênus em comparação com o Windows. Também um animal de estimação funciona como dizer para CC plus plus. Então, uma vez que esta edição estruturada como um tipo diferente de estrutura decidida, a indiferença ou a disfunção é usada. E assim o pórtico do site deles acidentalmente chama a função de aceitação. Usaremos essa estrutura de endereços. Portanto, não tinha o tipo diferente em comparação com as janelas médicas. Então, o cliente que estamos chamando de connect. Então, novamente, inclinado, vou ser chamado de função Connect inclinada. Eles disseram que O estruturado é usado no momento da dívida é diferente da das janelas. Novamente, o arquivo de cabeçalho, se você falar em termos de síntese especificamente não tão morto. Polynices era a programação de soquete é diferente em comparação com a dos arquivos de cabeçalho. Seleções de janela. Só estou correndo por esta sessão porque é uma sessão liberativa. Só quero mostrar se você compilar código cplusplus e Linux e quais sintonizadores combinadores usaram. E alguns cabeçalhos, como chamaríamos funções para entrada e exibição, essa chamada relacionada será diferente. Então, Sócrates. Todas as funções estão dizendo que voltou a isso. Se você comparar C e C plus plus. Então, vamos começar a escrever o código. Vamos passar por essa palestra. programação de soquete cplusplus da glândula Cetera Pode não existir programação de soquete cplusplus da glândula Cetera com execução de identidades. Vá para o sistema operacional Linux. E então vou mostrar o que todas as coisas estaremos usando. Bem-vindo vital para escrever esse código em C plus n2. Combine isso. Movendo-se para o próximo. Então, estou tendo ou quando para o Linux aqui. Segundo, deixe-me dar o primeiro. Aqui. Estarei abrindo o dominante. Como seremos, nos tornaremos escrevendo o código no dominante. Você sabe, eu já lhe disse na sessão anterior que na outra tendência de programação ou comunicação de soquete no Linux, eu já disse que estamos tendo provisão de uso de determinantes. Então, se você estiver tendo essa configuração do Linux, vou mostrar-lhe e ter, você sabe, os comandos básicos que são usados, ou o Linux que é muito importante. Portanto, já cobrimos comandos de WC e resumidos na sessão anterior. Vamos escrever o código dominante. Então deixe-me abrir isso. Está lançando um minuto. sala de reuniões da pasta criou de alta qualidade, C plus plus. Parece quase querer defesa funcionalmente. Diz maravilhoso. E agora você pode ver o arquivo que eu criei, já escrevi o código para evitar o tempo necessário para escrever cada instrução. Então, já expliquei cada instrução e sessão anterior que não escreveram o código em C e B. Em seguida, diz passar por ele se você quiser ir em profundidade. Então, sim, apenas para entender qual ferramenta é usada para compilar o código C plus plus e quais diferenças mínimas elas não estão na programação de soquete, mas quando você chama o console para ler e escreva no console, apenas essa função será diferente, enquanto as funções de soquete, como visto aqui, este arquivo que você está tendo na linguagem C plus plus terá o ponto de extensão cpp que no Vedas engajados resolver a linguagem C quando você escreve o código C, nós vimos que a extensão não era vista, mas no caso do assento, vamos melhor extensão é ponto CPP. Você pode estar ciente disso se você tiver feito a parte de codificação C plus plus, vamos para isso. Agora. Se você perceber isso, se você comparar com a linguagem C, se você competir menos física boa linguagem C, todas as coisas são iguais. Apenas uma diferença desse arquivo de cabeçalho que incluí no C plus plus porque você pode estar sabendo disso I O stream. Este é o cabeçalho na exibição e entrada comprada específica no console. Então, como vimos, que se envolve na linguagem C, usamos stdio.h. Aqui. Você pode simplesmente remover esse stdio.h que não é necessário. Então, deixe-me que você pode entrar aqui. Isso não é necessário. Porque aqui você vai chamar as funções exibidas no console. Você está chamando o código da função. Portanto, você pode estar sabendo que quando você escreve o código e cplusplus exibe qualquer mensagem no console, chamamos a função cout que é adquirida emitindo a mensagem no console. Portanto, esta unidade de mensagem é exibida no console. E isso é, eu usei o namespace std. Você pode ver que eu adicionei a escola usando namespace std porque essa biblioteca de modelos padrão std é que essa função está definida. Portanto, quando você tem dois C plus plus, você tem que mencionar neste namespace que essas funções estão lá. Então, temos que, em primeiro lugar, mencionar esse namespace e então podemos ver, se você não mencionar esse namespace e usar namespace std, ele o escreverá aqui. Então você pode simplesmente escrever sobre a escola como uma solução. Então essas funções, e presumo que você esteja agora no código C plus plus. Se você entrar no cplusplus, coordene a luz que é função básica para exibi-la. Acho que este ano e dou a entrada no console em que usamos C. Então, no nosso caso, não damos nenhuma entrada no DevCloud. Não estou chamando a função para inserir o que estou me chamando. Veja, vou trazer a mensagem deles no console para que haja apenas diferença aqui é que as funções relacionadas ao sulfato são as mesmas. Então, se você perceber que esta é uma coordenação cirrótica, execute seu programa. A execução parou dessa função principal. Então, seja qual for a linha de instrução, então vamos mergulhar nesta função principal. Ele será executado nove por nove. Esta é a mesma sessão repetitiva, apenas para mencionar a diferença em C e C plus, mais. Estou, tenho que estou dando esta sessão muito rapidamente. A cabaça aqui. Como eu disse, você estaria chamando a função ordenada que é usada para criar o soquete e vários tribunais que são família de entrada na Internet. Este é o tipo de soquete pelo qual ele é transmitido. Então, compramos comunicação com servidor e cliente. O soquete é criado e ambos os lados. Portanto, o tipo deve ser o mesmo se você quiser que a comunicação entre o servidor e o cliente esteja tendo o tipo de fluxo nove pontos ou você deve ter esse guia genético. O fluxo está em um tipo de responsabilidade do soquete aqui. E o terceiro é um valor padrão de protocolo de comunicação é 0. Ele retorna um descritor que é tipo in vivo. Portanto, isso é visto no caso de sequência cn toda região de tempo que é usada para programação de soquete em linguagem C e bem como doença, mas não há diferenças que em mim, essa cor azul exibir e inserir do console que apenas as funções que chamaremos são diferentes no caso de eu vou C e C mais neste arquivo de cabeçalho que temos que incluir. E então esta é a estrutura de endereços em que a estrada lateral, devemos vinculá-la ao endereço IP e número da porta para que, quando o cliente quiser se conectar a ele, ele possa sincronizar o mesmo IP endereço e número da porta. Portanto, essa estrutura preenchemos o lado do servidor com esse valor. E esses números do Conselho são desvalorizados. Isso significa que é, ele pode se vincular às interfaces de rede. Então eu expliquei que você mergulhe em uma seção anterior. E então os números esportivos, qualquer número que você der deve ser maior do que 10 a quatro porque ainda 1024 ele está ocupado. E você pode usar maior que 102465535. Em seguida, você está chamando a função de ligação para vincular um tipo de soquete ao endereço IP e números de porta apenas ao detectar dados de bootstrap período de dois anos aqui. Então estamos ouvindo isso Eu prefiro estar ouvindo nesse software. Este é o número que ele descreverá que a conexão seria inovadora. Em seguida, chamar a função de saída do conjunto do nosso site aceitará qualquer mensagem de uma conexão de, digamos, aceitar qualquer conexão de linha do lado da linha, essa fobia chamando a função de saída recusa e a conexão, então o servidor a aceitará. E, em seguida, versão filtrada e outro descritor de futebol que também é do tipo int. Este descritor de soquete, se você não escreveu vocal todo o paciente e o descritor de soquete, que ele não retorna é você está se envolvendo com conexão de linha escura. Isso é o que acontece. E então isso dito evite o que estamos fazendo. Estamos enviando a mensagem do cliente. E assim eu disse que vamos lê-lo. Esta mensagem será coletada. Estamos chamando a função de leitura. Esta mensagem será conectada a pequenos fundos simplesmente operando, alugando. Você pode ver aqui que a diferença não é apenas o que eles estão imprimindo. Então, aqui estamos chamando a função CL, ou seja, C plus, mais linguagem C plus. E, no entanto, exibindo nos conselheiros C out e esta dentina aspas duplas qualquer mensagem que você der, você não precisa fornecer o especificador de formato e C plus plus. E então você tem que dar essa saída de índice, depois tampão e , em seguida, acabar com a vermelhidão. Você quer que ela apareça para esta mensagem na nova linha. Então, isso será recebido no novo caso da United no CV dá barra n. Mas no caso de eu ver abençoe, me abençoe, dê END l e l que está aparecendo fazendo mensagem de nova linha do Windows para vir na nova linha. E você pode novamente, então o que quer que você possa ver aqui, onde quer que quisermos exibir Animais oito no conselho, estamos chamando a dívida C0, C0, C0 nestes diferentes em comparação com a linguagem C, existem duas linhas de código extra que é hash incluem iostream. Você tem que incluir esse arquivo de cabeçalho e hash e, em seguida, usar namespace std, porque em STD em mim o CEO está morto. É isso. E então eu te disse, já que vamos nos apresentar, disse Deixe-o comunicação com o cliente. C plus plus no mesmo, fato porcas na mesma máquina. Nesse caso. você estará abrindo o total de minutos em um terminal e você obtém isso como dominante e um terminal, executaremos o código para eventos ou viés de desconto do código é compilado e executado em um dominante em outro terminal. Depois que o código do cliente for compilado, nós o executaremos. E outro dominante, ambos a água total sobre eles deve estar funcionando em terminais diferentes e então eles estarão se comunicando uns com os outros. Vamos compilar esse código. Então, aqui, isso é diferente em C plus plus, usaremos a ferramenta de compilador g plus plus. No caso da linguagem C, quando cavamos código C, usamos o GCC. Mas seja bem-vindo ao encontrar o código C plus plus. Não podemos compilar o GCC porque ferramenta de compilador GCC é usada para combinar inquietos, nazistas e bem-aventurados. C plus plus é um complemento extra na cena. Você só g plus plus. Essa é uma ferramenta de compilador. Você pode compilar o código C, bem como o código C plus, porque é um atualizável, uma dúzia de versão atualizada, a da linguagem C. Assim, a linguagem C, bem como a linguagem C Plus Plus, podem se tornar arquivamento por g plus Y2 fora não é mandona, mas ou seja, você não pode combinar seu código C plus plus usando este GCC. Você precisa usar g plus plus. Portanto, como o C plus plus suporta, suporta apenas a linguagem C, portanto, por G que estamos usando D plus plus, você pode combinar o código C e C plus plus, mas vice-versa não é possível. Ou seja, você não pode usar o GCC para combinar o código C plus plus. Portanto, estaremos usando g plus plus, e então seremos bilíngües ou usaremos o aluno. Então, novamente, ele criará o arquivo e fora que eu tinha antes de executá-lo. Vamos também ver o código de esboço que abriu um novo dominante ou os acidentes que eu massacrei totalmente correm em diferentes dominantes. Agora. Agora, desde que eu te disse , o código C plus plus, que vamos mergulhar realmente tem a extensão para pilotar herdar a extensão em direção ao CPP, fizeram as mudanças para chamar a entrada e a saída função. Então você pode ver aqui, novamente, estamos tendo, este é um código muito curto em um minuto. Você notará que o código do cliente é muito pequeno em comparação com o da salva contra as funções de soquete como dizendo mais aquoso mais quatro linguagem C na mídia chamando a entrada e você está a função bagunçada para exibir a mensagem na perna do console só é diferente. Portanto, temos que incluir esse arquivo de cabeçalho, iostream. Você tem que escrever esse namespace std. Então, as mesmas coisas assombradas de descanso rosa estão vendo relacionadas ao soquete. Então você está chamando a função de soquete no cliente. E estamos dizendo é que estamos mencionando aqui, então a mesma sintaxe, estamos preenchendo com o endereço IP. Então eu disse que $127 No.1 não é o endereço de Lubeck que, uma vez que me adicionamos uma comunicação maravilhosa para acontecer na mesma máquina. Profundidade ou o servidor e o cliente estão sendo executados na mesma máquina. Portanto, isso significa que um endereço de Lubeck significa, isso significa que este quadro para o endereço IP local, host local. Ips certamente tinha diabetes no host local porque sabemos que no servidor host local também está em execução, então ele reverterá o endereço IP do host local. E então estamos mencionando o número da porta no lado do servidor, qualquer número que damos que não atenda ao lado do cliente, ele deve estar afundando para o mesmo número de placa para se conectar à célula. E também o endereço IP deve ser o mesmo. Em seguida, continuamos a função de desconexão. V bar é essa estrutura aqui. E então estamos escrevendo a mensagem do site do cliente. mesma mensagem que escrevi. Então você pode ver que o V, V que estou exibindo no conselho é diferente já que estamos fazendo essa codificação em C plus plus. Então, estou usando o CEO que exibe no console e N dólares costumavam enviar mensagens na nova noite. Mais uma vez. Veja como ele é usado aqui para querer imprimir a mensagem, o que quer que o cliente esteja enviando que terminamos no console. Essas diferenças em nenhum repouso nas funções relacionadas ao soquete são as mesmas. Então você pode entender se você conhece o mesmo idioma, você pode iniciar C mais nada de diferença é que nas funções relacionadas ao soquete no display nuclear a mensagem no console, o C plus plus porque trimestres lá esse código. Mas cagando no console. Vamos encontrar o quadro aqui. Então aqui está a ferramenta de combinação que estou usando GPS porque, como eu disse, não podemos usar o GCC para compilar o código para o C plus plus porque gcc, porque C não suporta C plus plus, mas z mais o suporte C porque não aconteceu, é uma versão incorporada do mar. Portanto, você pode usar melhor o GPS para compilar o código C, bem como o código CPP C plus plus. Mas você não pode usar o GCC para compilar o C mais quatro. Você pode usar o GCC na necessidade de combinar o código C. Espero que você tenha entendido a diferença. Então vamos compilar o código aqui. Ele está gerando um ponto para fora falso. Devemos executar o servidor, então devemos executar essa linha. E qual é o processo daemon deles? Ele deve ser iniciado primeiro , exceto a conexão do cliente. Então, agora vamos executar o código para o servidor. Você pode ver no lado do servidor e estamos recebendo essa mensagem que está escutando conexões recebidas, meio que o que está ouvindo? Agora vamos executar o código do cliente que está morto no outro dominante. Agora, simplesmente estamos enviando mensagem, estamos gravando uma mensagem de função correta no soquete do cliente, digamos que o estágio testemunhado do DOM do lado do servidor será atualizado. Deus se conectou e qualquer mensagem o prazo descendo para o levantamento Derby para acelerar para o sódio. Em seguida, mútuo usando o soquete. Vamos Dando por AD e indutor de saída sublinhado site. Você pode ver aqui conectado ao site prata na linha de carga. Após a função de conexão, você está enviando essa mensagem usando CEO, que é uma diferença e C plus plus. E depois que a mensagem é enviada, aqueles que eu escrevo no soquete do lado do cliente, nós os recebemos como instruções. Está com alça inclinada para tampão. Então, vamos para o lado do servidor e ver se a mensagem foi recebida. Você pode ver aqui que no programa, este é um servidor chamado soquete vários códigos. Você vai passar esta mensagem ductus depois de ouvir conexão recebida no lado prateado, se você quiser que eles tenham a idade como Glenn conectado, diz o cliente, mas o que é olá? Então, esta mensagem, você é uma coisa boa na saída e, em seguida, o cliente desconectado. Aqui eu tinha mais uma coisa. Eu inicializei. Se você vir aqui, que embora tenhamos dois para trás, na verdade, que estou usando aqui no lado do servidor, eu inicializei para 0. Porque se eu não fizer isso inicialmente, esse 0 significa que ele está inicializando neles. E burburinho do Eddy, Brasil, você pode diretamente, você não precisa escrever 0 a cada 102 ordinal uma região. Você pode simplesmente escrever Connie racism 0, isso significa que na inicialização da ONU por padrão para 0. Portanto, isso é muito necessário porque uma vez que a calçada receberá a mensagem do cliente. Nesse caso, já que se você não inicializar por dipolar para 0, então o que quer que esses clientes tenham, envie uma mensagem no celebrante que você saída de um novo exibido no console, você irá receba essa mensagem, mas vitae extra, qual coisa você também receberá. Portanto, temos que primeiro inicializar essa string, que é o caractere Eric para 0. E então nós temos o que o cliente está enviando para o servidor quando eu, isso não vai fazer o Buff outro e pode ser exibido no console. Você não receberá o local do banco de dados. O que você ganha para cliente está dizendo apenas Olá, então ele vai pegar o gramado dela. Isso é sim. Agora terminamos com esta placa de programação de soquete. Decida sobre a aplicação de férias na plataforma Linux usando o C plus plus. Então bebida quente Código C. Você pode passar pela sessão anterior que eu abordei em detalhes. Estou pronto para esta sessão. Obrigado. Muito obrigado. 15. Sessões de Socket Session9 entendendo o Socket Session9: Olá, bem-vindo a esta nova seção que está entendendo que deve ser a comunicação do cliente do servidor no ECP. Aqui, novamente, a comunicação de soquete que veremos entre o servidor HTTP e o cliente. Pelo termo HTTP, você pode estar ciente do que é isso? Http. Http significa Hypertext Transport Protocol. E sempre que estivermos navegando na rede, sempre que quisermos gravar algumas informações da rede, estaremos digitando o link, visitaremos o site e sempre damos http ou HTTPS. Por deck, obteremos o link de lançamento da página que obtemos dessa maneira. A busca de fim de semana de informações. Dessa maneira, seja qual for o link que você está passando, você está dando em qualquer navegador. Pode ser o Mozilla, pode ser o noivo, pode ser o Internet Explorer. Todos esses são os tipos de navegador. Estes são o lado do cliente, do aplicativo, de modo que vamos dar qualquer URL, este URL, que será o link Odyssey, que nós, você dá, suponhamos que você está dando Google.com e que é o que acontecerá. Você deseja buscar a página no Google.com. Então você será um link, você estará digitando o link no navegador, no site subjacente do lado do aplicativo. E essa ligação que passamos será enviada para o lado do servidor. É o Apache, o lado do servidor Apache, e enviará os dados em resposta à solicitação, que é ridges fornecidos por ele era um lado. Então, os dados serão carregados no lado do navegador. É assim que essa comunicação ocorre. Na maioria das vezes, mergulhamos o link, mas não sabemos como ele funciona para ajudar a gerenciar essa comunicação ocorre foi simplesmente ser um dado somado que buscamos. Suponha que queremos buscar alguma imagem para digitar o link naquele, no, no navegador. Esse pode ser o problema pode ser o explorador de sopas genéticas. Em seguida, obteremos os dados da imagem. Então, como os dados você obterá na imagem? Como isso acontece, na verdade, você está apenas digitando o link e está enriquecendo os dados sobre idade em sua página, como esses dados você obtém. Então, por trás, essa comunicação ocorre entre o servidor e o cliente e o servidor. Uma mutação ocorre. E essa é a comunicação do cliente do servidor HTTP. Então isso ocorre no TCP. Ou seja, vimos a sessão TCP. É um protocolo confiável porque tudo é fornecido aqui. Ele fornece a correção de erros. É confiável porque todos os dados serão enviados. Alguns dos dados são perdidos e, novamente, serão transmitidos. Também pode ser notificar o conjunto de nós. Então, é assim que ocorre uma comunicação confiável. Também é pesado. Então, vimos, discutimos sobre DCP. Então, aqui veremos como esse HTTPD é uma comunicação com vários clientes ocorre no TCP. Portanto, não assume o UDP porque o TCP é confiável e queremos que a comunicação ocorra, não deve ser confiável. Portanto, isso ocorrerá no GCP. Vamos entender mais. Vamos para isso para que você entenda em detalhes sobre o que estamos discutindo. Em nossas palestras anteriores. Vimos que você pode estar ciente de como essa comunicação de soquete de cliente do servidor TCP ocorreria essa comunicação de soquete de cliente do servidor TCP porque eu já expliquei quais métodos conhecidos são usados. Ou servidor TCP, comunicação com soquete de cliente. E também vimos que, com código para o Windows e Linux, todos nós classificamos no programa na ID de xilogravura, esta comunicação de tempo do servidor TCP, comunicação de soquete e as janelas. E nós o executamos. Com a ajuda desse conhecimento, veremos como essa comunicação do soquete do cliente do servidor HTTP ocorre no TCP. Então isso será muito fácil para você porque se você tiver passado pelas sessões anteriores, você estará em tudo, quase todo o acorde VI usando nesta comunicação de soquete de cada servidor HTTP offline mas com alguma pequena modificação. Então você também vai achar mais interessante. E vamos começar os tópicos que discutirão compreensão das pessoas sobre o diagrama do blog de um medicamento. Em seguida, veremos como o cliente HTTP envia a solicitação na forma da cabeça e da NBC, O que esse cabeçalho em detalhes? Em seguida, veremos como esse servidor HTTP dará esses vínculos à solicitação de clientes HTTP em forma de cabeçalho e corpo. Vamos começar com o tópico para que você entenda mais melhor. Agora, este é o diagrama da conjugação de contorno do servidor HTTP. Então aqui você pode ver que isso é HTTP nove, e este é o servidor HTTP. A solicitação será enviada do lado do cliente HTTP para o site do servidor HTTP em termos de mensagem de solicitação HTTP. E normalmente é a barra lateral que a dança recebe não. Um, insira os dados do cliente. Ele produzirá isso nele e, em seguida, enviará a resposta de dados para o cliente HTTP. Tão cegamente considerado como um navegador. O exemplo que eu te disse que você não era nenhum link no delta. O navegador pode estar no espaço, pode ser o infinito explodido ou pode ser disparado false. Navegadores tão diferentes e diferentes. Você pode fornecer links diferentes em que o link contém barra de dois pontos HTTP. Vamos supor que você e você quer dar o link WW, o moodboard, google.com, você quer dar o facebook comprado padrão comum, eu sou dot com qualquer um dos links, mas você quer que a multimídia relacionada link. Qualquer informação que você queira um link para isso, você fornecerá os diferentes links. Esse link que você passa. Esse será o lado do cliente resultado. Então esse será o link. Essas informações serão enviadas para o site do servidor em vez de no site, ela responderá a esse link. Ele irá buscar, constituirá os dados que deve enviar ao cliente para que os dados que era um site, esses dados sejam carregados e você obterá a página carregado no lado do navegador. Portanto, todos esses dados serão enviados do servidor para o cliente, que deve ser carregado no lado do navegador. Vamos começar esse outro diagrama, opaco. Este é o seu navegador, como eu disse, pode ser Chrome, pode ser disparado, falso. Sephardi, Internet Explorer, qualquer coisa, qualquer um dos roteadores, esta parte é o cliente e você está passando a solicitação. Ou seja, você está digitando qualquer link neste navegador como Google.com, facebook.com e hoje internet. Isso será para este lado onde classifica este servidor web e servidor de aplicativos, ou seja, servidor HTTP, este mini constitui os dados. Na verdade, ele receberá os dados e os enviará em resposta a essa solicitação aqui para o navegador e, em seguida, a página será carregada. Então, é assim que a comunicação ocorre. Vemos mais detalhes agora. Agora vamos entender o que está acontecendo no diagrama anterior. Portanto, o cliente HTTP, vamos enviar a solicitação para o servidor, responderá a ela por TCP. A mesma coisa que eu disse que esse cliente envia uma solicitação para o servidor. Essa é a linha aqui, este é um cliente e o servidor recusa. Esse é o seu navegador. Pode ser qualquer uma dessas coisas. Chrome, Firefox, Safari, Internet Explorer. Ele está enviando a solicitação, solicitação HTTP que será passada pelo protocolo TCP. Portanto, essa solicitação será enviada para o servidor, responderá a ela, enviando os dados de volta. Ele responderá a ele ou se TCP. Então, ele usa o protocolo MQTT, ele usa o protocolo TCP porque é um protocolo confiável. O protocolo Tcp é um protocolo confiável. Agora vamos ver o exemplo, aquele que já discuti, o navegador chrome. Vejo você quando damos água para dizer que damos http, www.google.com, adobe eyes, dando qualquer URL. Suponha que você receba as URLS, o Buda blue.example.com. Suponha que algum link. Ele está tendo a página padrão. Este link foi configurado para ter a página padrão sempre que o usuário digitar este link. Este link em si está configurado para chegar a esta página, página padrão. Se ele estiver configurado para esta página, index.html, qualquer um dos links realmente pode ser. Então, o que acontece? Então, vamos ver. Este UID, ele será passado dessa maneira. Isso que você adicionou será passado para o servidor. Esse overbid processa-o e envia os dados de volta em resposta e a página será carregada. Vamos ver, um por um, o que acontece? Agora? Estaremos discutindo passo a passo. Ou seja, como o cliente HTTP enviará uma solicitação para o servidor Apache. Então, já estamos discutindo o exemplo como se estivéssemos dando qualquer link para o navegador. O navegador pode ser qualquer coisa que vimos no diagrama de blocos. Suponha que se você der example.com, como eu disse que alguns desses links, eles estão no ADA ou configurados por padrão para alguma página. Suponha que esta página, exemplo.com, esteja configurada para index.html, seja, seu padrão reproduziu seu local. Dê a este link que a igualdade será esse index.html humano. Em seguida, este link que você dá no navegador o que acontecerá nesse caso. Nesse caso, você digitaria qualquer link no navegador. E isso nos dá um PIB. Ou seja, se você der http ww.example.com, então STT escolha nove. Sra., envie uma solicitação para esse servidor. Isso você adicionou um pouco ao servidor Apache. Aqui eu mencionei esse teste. Os dados são enviados para o servidor e esses dados que são essa interface do usuário. Isso, ele será enviado na forma do amontoado. O que é esse cabeçalho? Cada um e tudo o que mencionei, o cabeçalho. Este cabeçalho, que ele está lá. Ele mostrará coisas diferentes nele. Aí está ele. Ele consistirá nos métodos que são métodos HTTP diferentes que estão disponíveis. Vamos ver apenas métodos de choque da lista que estão disponíveis para HTTP no último final da sessão. O que vai usar é um GetMethod. Este cabeçalho, ele cancra. Se estamos falando sobre esse URL que você está passando no navegador, no noivo, digamos que você está digitando qualquer link, digamos ww.example.com. E o que acontecerá em segundo plano. Então, pós-doutorado em segundo plano, este cliente HTTP enviará uma solicitação para essa prática com este UID, ou seja, W W.example.com. E isso, não haverá nenhum envio dessa solicitação ou de sua prática neste cliente. Ele converterá esse URL na casa ou no cabeçalho, esse cabeçalho é ancestral de todas essas coisas que S consiste em método. Existem diferentes métodos, como get, delete, os diferentes métodos. Mas aquele que é isso, o GetMethod verá o que somos todos métodos diferentes para obter isso para buscar os URLs. Portanto, no nosso caso, como estamos dando o URL, estamos buscando o USDA usando um ano. O GetMethod será rápido. Neste caso. Então, terminaremos. Lá. Haverá consistindo no método e consistirá no URL da loja. Você adicionou que será, ou seja no nosso caso realmente morreu exemplo.com. Mas se estiver configurado para algum pagamento diferente, digamos index.html, então b hat e, em seguida, a versão do protocolo. Como é que estamos usando o protocolo HTTP, então ele pertence às respostas da versão do protocolo. Em seguida, ele virá desde o host, o host será como WW.example.com. É o endereço IP para quem cria qualquer coisa que você esteja perguntando qual será o endereço do host oferecido naquele mês e o agente do usuário. Então este nu é esse agente. Será novo para você, na verdade, sempre que você estiver usando Mozilla, Firefox ou Internet Explorer, apenas entenda que diferente, diferente, diferente, diferente, diferente, diferente, diferente, diferente API do agente do usuário usando, se você quiser, você também pode testar dessa maneira. Você acabou de experimentar exemplos de pontos WW. O bill.com no navegador Chrome e você verifica o agente do usuário. Você o digita, o disparo é falso, você vê o agente do usuário. Então, será engraçado tê-los dependendo do dipolo que você está usando VDC. O próximo slide para discutir mais sobre os detalhes desse cabeçalho. Então, espero que você tenha entendido que quando estamos enviando este novo link de URL para o navegador, realmente compre em segundo plano, esse navegador se formará neste executor de contorno. E consistirá em todas essas coisas que serão passadas para o servidor em detalhes. Eu disse que esse cabeçalho cancelar o método de estoque, na verdade, já que queremos buscar o URL, o método será o método GET. Em seguida, a URL realmente que você estava digitando, e a versão do protocolo, que tipo é o GDP Virginia usando. Em seguida, você hospeda realmente o que é um endereço IP do host e o agente do usuário, como eu faço isso para navegadores diferentes, há diferentes agentes de usuário nele ver em detalhes. Isso é detalhado dessa maneira. Por essa coisa. Você entenderá e motoricamente ou assim este é o cabeçalho. Então, no nosso caso, estamos buscando o URL. Como eu lhe disse quatro métodos diferentes e diferentes que são métodos HTTP diferentes, no nosso caso, obter método só é chamado porque GET é usado para buscar o URL para isso, você obterá isso como um método. Este é um método, este index.html. Eu lhe disse esse exemplo do pequeno blue.example.com, mas em outro padrão, o zoneamento está configurado para este index.html. Então você receberá o URL aqui dessa maneira. Em seguida, esse cabeçalho consistirá nesta versão de protocolo do HTTP. Em seguida, ele cancela o host ou a anfitriã, WW.example.com, que estamos analisando, depois o agente do usuário. Portanto, esta é uma fonte de agente do usuário. Sempre estive escrevendo. Dar o link no agente de usuário do Mozilla Firefox significará que este homem era um códon, então teria dado diferente. Mas em uma inversão na sintaxe desse agente de usuário. E todos os detalhes sobre isso, exceto transtorno de linguagem, essas coisas. Isso é tudo que o cabeçalho constitui de todas essas informações serão enviadas para o servidor. Portanto, sempre que você digitar qualquer URL para sin example.com, ele tem a chamada configurada para este index.html no Mozilla Firefox. Então, internamente, este cliente formará esse cabeçalho dessa maneira, na verdade, e ele será enviado para o servidor. Agora também quando vamos fazer programação. Então aqui vou explicar cada coisa sobre essa comunicação do cliente do servidor HTTP. E na próxima sessão faremos a programação. Quando eu executei o código de a. De vocês estarão vendo todos esses dados. Estaremos imprimindo os dados o que desce para o lado. Portanto, esses dados serão impressos lado a lado para que você os entenda com mais clareza. Essas são todas as coisas que o cliente envia para o servidor e você pode obtê-lo impresso no console desta mensagem do conselho consultivo que recebeu do cliente. Então, vimos agora o que acontece quando a solicitação HTTP para esse servidor agora vê trabalhadores, quão triste, mas enviará a resposta para esse cara. Agora, esse lado tem que ver esse cabeçalho que o cliente enviou para ele. Agora isso fora de onde é o servidor Apache, como ele responderá a esse cliente. Então, também deveria ter caído em 70. Os dados em termos desse formato de cabeçalho, neste formulário, eu disse que você deveria enviá-los para que na página você os obtenha. Obtenha a página correta carregada com informações. Então este álbum, o que NÃO NO caso da barra lateral constitui constitui nesta informação esta informação que é qual esse lado, onde quer que ele consista, pare se for possível, haverá a versão do protocolo, igual ao GTP, qual versão está usando-os, o código de status e a mensagem. O que faz isso, ou seja, se o link que o usuário forneceu foi com sucesso a barra lateral Esta manhã com sucesso. Há alguma falha na rede, qualquer coisa, seja o que for. Dependente de falha bem-sucedida, dependente do código, é que sua mensagem está lá para esse sucesso de falha e muitas mensagens diferentes. Então, ele enviará lá, na verdade neste cabeçalho, que consideraremos relatar todas essas informações que ela deve consistir e o tipo de conteúdo e o comprimento do conteúdo. Então, qual é esse tipo de conteúdo e tamanho do conteúdo? No nosso caso, estamos dando ao WW.example.com ou padrão que o link está configurado para index.html. Suponha que esse índice, nosso tipo de conteúdo será de página HTML. Suponha que fosse alguma imagem, então ela terá dado que o tipo de conteúdo é imagem. E o que esse conteúdo empresta? A terra do conteúdo é o quanto dos dados são recebidos. Quanto dos dados ascendentes na verdade, o servidor enviará para o cliente. Isso diz o conteúdo. E isso será seguido por uma linha em branco e a mensagem com o servidor 1% para recusar que você possa escrever. O que faremos em nossa próxima sessão, escreveremos um programa para este servidor. Não precisamos escrever o programa para o voo. Esteja usando todos os métodos que estudamos até agora. Isso é para a comunicação do servidor HTTP, em vez de ajuda dos EUA, seja lá necessário para criar um soquete para vincular, Of, ouvir aceitar todas essas coordenadas estarão escrevendo e alguma pequena modificação na verdade, essa será essa modificação. Então, desde que estive com você, desde então, estou dizendo que o servidor responderá em termos de produção. Então, já que vamos escrever o código na Leda lado a lado, então missão. Escreva todas essas coisas. Devemos fornecer essas informações do lado do servidor em nosso código para que possamos obter uma resposta adequada para cancelar, obtemos uma página apropriada. Portanto, seja qual for a mensagem que estamos digitando lado a lado baixo, queremos que seja exibida no navegador, mas no documento dito deve ser impressa no lado do navegador. Suponha que estamos enviando alto da mãe, o oi ou olá ascendente, compre qualquer coisa do lado do servidor. Ele deve ser exibido na página do seu navegador como oi, olá, qualquer mensagem que você está enviando. Mas temos dois tipos. Temos que não sentir e detectar textos. Temos que enviá-lo na forma do cabeçalho. E o que esse cabeçalho cancelará a parada. Ele consistirá na versão do protocolo. Você precisa fornecer a versão HTTP em nosso código de servidor antigo. Não se preocupe com isso. Explique você com o quadro ligado. Então esta é apenas uma descrição que muitos começam a embarcar, vou explicar o que a codificação é necessária e é muito simples. Apenas duas ou três linhas de código extrair ouro são necessárias para executar o servidor HTTP, comunicação com o cliente, uma vez que você já sabe o que é a calçada ou doc TCP, nós vimos isso em nosso anterior , em seguida, basta fazer a lente é adulta e é coisa simples porque o que temos que simplesmente constituir o conjunto de vertical ou luta, temos que constituir que a mensagem, que servidor enviará para o rendimentos de linha em crédito formal. Essa é apenas a diferença. O que mostramos consiste, Alex, vou mencionar o que todas as coisas temos para dar um novo portal para que você possa simplesmente relatar o que eu estiver escrevendo, o que quer que eu esteja fazendo codificação e você pode entenda isso. E os que você faz você mesmo, você se executa, tudo o que eu vou deixar você saber o que todas as coisas são necessárias. Portanto, esta mensagem de pontuação de status da versão do protocolo, você tem que dar a eles o tipo de conteúdo e , em seguida, a noite em branco e a mensagem. Então, vamos ver. Nesse caso, esse deve ser o formato. Na verdade, esta é uma imagem de formato ou diagrama e que tipo de mensagens vou explicar. Vou te explicar na próxima sessão. Que mensagem será dada deste lado em termos desses arquivos de cabeçalho. Então, sempre que um dado Se lhes dermos o que faremos no nosso caso, como vamos executar isso? Você fará essa comunicação entre a janela do navegador, o servidor Apache. Simplesmente, já que estamos tendo, estamos tendo a configuração da nossa própria máquina. Ele queria testá-lo, vai conseguir isso. Daremos o endereço do host local e o computador, o servidor, para ouvir no host local da unidade DynamoDB no lado do navegador. Sempre que estamos dando o VI para dar ao local que está dando o endereço IP visto disparado na própria máquina. Então, nesse caso, ele falará. E você não mapeou para a mesma porta, servidor e cliente. Portanto, uma vez que escrevemos o endereço IP do host local em ordem, mas eu estava fornecendo as fontes do número da porta nesse número de porta onde estou aplicando isso com o mesmo número de porta. Então, seremos pelo nome do servidor para esse número de porta, ou seja, 80. E faremos no lado do cliente, neste host local, host local no endereço IP no lado do cliente e com o número da porta. Ouvirá, ouvirá essa solicitação do cliente. Como o ADA tem o mesmo número de porta e é mapeado para o mesmo endereço IP no servidor. Devemos ouvi-lo? E ele vai aceitá-lo. Ele aceitará a conexão e enviará uma mensagem para o cliente que estará vendo na mensagem de texto do lado do navegador. Então, não amigo, relaxe. Vou explicá-lo em detalhes na próxima sessão. Só para entender esses são os dados difíceis que temos que constituir. Ele será construído diretamente em nossa mensagem a partir do site do servidor. Somente esta mensagem será alterada da identidade do servidor para escrever a mensagem inteira dará a versão do protocolo e, em seguida, ele dará o status 200 e as mensagens de status. Ok, isso é tudo o que eu tenho sucesso. Há uma razão pela qual damos esse detalhe e essas informações, como data. E, em seguida, os tipos de conteúdo de não são EPA consideram o exemplo de WW.example.com, então ele é configurado para index.html. Portanto, é o próximo tipo de mercado não é o tipo de imagem, então esse é o tipo de conteúdo e quantos dados serão passados do servidor levou nove, ou seja, o conteúdo Lin. E, em seguida, uma linha em branco e a mensagem devem ser enviadas de servidor para cliente. Diga oi Olá por qualquer coisa. Essa é a coisa composta pelo site do servidor no qual esses dados são um formato de cabeçalho que será enviado ao cliente para a página carregada no lado do cliente. Então, sim, uma vez que esta resposta do centro de conselhos, conforme mostrado no slide anterior a página será carregada no site da linha do navegador, mas a mensagem enviada do servidor, a mesma coisa que eu lhe disse uma vez. O servidor constitui esse cabeçalho e envia para o cliente. E então a página será carregada ao lado, no lado do navegador com a mensagem com este lado, mas está enviando. É assim que vamos prosseguir. Agora, terminamos de entender os conceitos que são necessários. E, no último, métodos HTTP que estão presentes lá que são métodos HTTP radicalmente diferentes, como get, é corrigir o URL. No nosso caso, esse método será usado porque estamos buscando o URL. Portanto, o método GET será chamado quando o cabeçalho for constituído, depois outras mensagens e cabeçalho de cabeçalho, ou seja, buscar as informações para o URL. Outro método é colocado que é armazenar no método de URL publicado nos dados para você. Não recebi uma resposta e excluí o D2L. Portanto, existem métodos diferentes e diferentes do HTTP. O que, uh, o que nós, nós apenas exigimos, esse é o portão, já que temos que buscar os URLs. Espero que você tenha entendido o conceito antes de parar. Antes de começar com a codificação. É necessário percorrer esta sessão. Então, coisas básicas que discutimos, vimos como essa comunicação do navegador ocorre muito escuro de ambos os lados. Ou seja, em qualquer link que você mencionou em seus navegadores diferentes, seja qual for, então este link será analisado. Ou seja, uma solicitação do cliente será passada para o servidor e este cliente em segundo plano, constituirá o cabeçalho que conterá esse formato se o enojo, ele conterá o métodos desde que você precisa buscar o URL e, em seguida, o URL. Suponha que ele esteja indexado, suponha que seja exemplo.com. O padrão está configurado para index.html. Então esse será o URL, depois a versão do protocolo. Como estamos usando std, uma versão dela, então o host que é example.com. Então ele foi escrito, eu te disse quatro navegadores diferentes, como o Chrome para minhas quedas de aquisição. Derivado de Dave em diferentes novos agentes de usuário. Em seguida, essas informações nele, então, como essa disponibilidade responde? Então ele também foi constituído responde de volta na constituição desse cabeçalho e corpo em si. Portanto, esse cabeçalho consistirá em todas essas coisas. Portanto, isso é necessário para o nosso caso. Estaremos escrevendo a mensagem do meio reescrevendo cópia colando o mesmo ou HTTP ou telefone, desculpe, esboço do servidor TCP que vimos. Copiaremos as mesmas partes de código do DCP. Dcp várias codificação do cliente de linha não é necessária apenas o servidor TCP, vamos escrever o código, o mesmo código e simplesmente desnecessário através do envio que salvei do servidor para o cliente. Textos não centrados como olá, oi, areia em termos de formato de crédito, neste formato que temos que admitir que mudou acordo com a lista tudo está dizendo. E então você pode ver como eu acabei aplicando quão bom hiperlink sobre como carregar a página, como fazer com que a mensagem seja exibida no formato de página de índice. Na avaliação de formato baseada na web, você está passando de lado, mas no lado do navegador, isso é o que e existem métodos diferentes, então esteja pronto para uma nova sessão, mas não nós será codificação para comunicação on-line do servidor HTTP, que é o servidor HTTP Apache, e a comunicação do navegador no TCP no Windows VDB , pois esteja pronto para isso. Obrigado. Muito obrigado. 16. Session10 de execução de programa Session10 Communication Windows C++ Parte 1: Olá, e bem-vindo a esta nova seção que é programação e execução de um TPP. Nossa camiseta navegaria comunicação do cliente no IDE, no DHCP. Como na sessão anterior, vimos o entendimento do navegador do servidor HTTP Apache. comunicação com o cliente pode ter visto o que tudo é necessário, como ocorre a barra lateral e a comunicação do navegador, como o cliente, mas quando, sempre que estamos lançando, adicionamos digitar qualquer link no navegador da web. E o navegador pode ser, pode ser explodido, pode ser crescido, pode ser Firefox, navegador. Sou delegado. Então este URL é enviado para a barra lateral na forma do cabeçalho que vimos, vimos o formato do cabeçalho. Portanto, consulte a seção anterior se você não tiver passado por ela, é o entendimento em detalhes antes de iniciar a execução deste programa no ID e fazer essa comunicação no navegador e servidor Apache. Vimos como o cliente enviará uma mensagem para o sedimento e não informará o cabeçalho, então o colono responderá a ele. mesmo na cúpula Salk cabeçalho, cabeçalho e corpo. Então, finalmente, recebemos a mensagem onde eles não decidiram, bem, enviaremos a mensagem será exibida no navegador e na página da web. Veremos que isso estará sendo executado, escreveremos o programa no ID que é chamado de ID do bloco. Aqui estamos usando isso, pois está disponível gratuitamente, e então vamos executá-lo e você verá como estamos fazendo a comunicação. Vamos começar. Agora, a declaração do programa, que mencionei agora que no navegador, o que faremos isso nos navegadores. Suponha que você esteja usando um navegador Chrome. Você pode usar qualquer navegador. No nosso caso, usaremos o navegador Chrome. E o usuário fornece o link assim. O que é esse link? O usuário pode fornecer qualquer link. Então, por eu dei esse link porque eu quero, quero que o meu leve a comunicação na mesma máquina host. Bede escrevendo o código na célula da maneira que os eleitores indecisos comprando para o endereço IP do próprio host local, desta própria máquina. E será vinculativo ao mesmo host local. E o cliente será então desejado se conectar ao servidor. Portanto, temos que fornecer o mesmo endereço IP. Então eu tinha me perguntado quem te disse um a sete ponto 0 ponto um, que você dá do lado do cliente. Então, todo esse entendimento, escrevendo o programa como eu disse na sessão anterior também, requer o conhecimento da comunicação TCP, que vimos programação de soquete, que nós fizeram para as janelas. Fizemos um conjunto de comunicação on-line em uma sessão anterior à anterior, vimos como fazê-lo se você pudesse escrever o código para o servidor, bem como para o cliente e, em seguida, a comunicação. Então eu tenho métodos de cascata antigos usados para linhas de produtos finais do lado do servidor. Gosto de volume. Então ele precisa ouvir e , em seguida, exceto sob o programa que eu vi neles. Então você passou por toda essa sessão. Você está indo bem sequencialmente. Quase decodificação que estaremos fazendo. O que o HTTP vale em vez disso? Nove, usará a mesma codificação que fizemos para a comunicação do cliente do servidor de programação de soquete TTP . Mas uma pequena modificação pode ser uma modificação de uma linha na altura do envio da mensagem do servidor para o cliente. Como vimos, se tivermos que fazer a comunicação para o nosso, esses certificados de ações valem nove comunicações e mensagens. Devemos ser feitos para que ele tenha sido o formato do cabeçalho. servidor deve dar a resposta ao cliente no FOMO, não como no pretexto. Isso é apenas uma modificação três linhas de código mais antigas. O que será o mesmo para o site do servidor, que você não fez mais PTP, que vimos e executamos. Portanto, não precisamos escrever essa linha. Ford Hillary, temos que escrever apenas as linhas de porta do servidor e você ingerir erro de digitação, você amplia neste navegador poderia possuir, este endereço IP específico, é um endereço de volta de loop. Isso significa que são esses endereços nesta própria máquina host local, independentemente dos endereços IP da máquina host local, é que no endereço IP e no número da porta que estamos dando um 0 AT, sabemos que isso é específico para HTTP estará dando a placa também para o lado do servidor, esta é uma boa linha dizendo em que daremos esse URL no Chrome não escreverá esse código de linha, não é necessário que esta unidade abra esse URL e o URL somente que estão abertos se você quiser que a comunicação ocorra na mesma máquina host para esta linha. Então, esses mínimos. Isso será, e penso que para o endereço IP, endereço IP local da própria máquina. Então, forneça esse endereço IP em si. E esses números de porta são simplesmente o cliente se conectará ao servidor e disse Que tal qualquer mensagem que estamos enviando do serviço através do envio no crédito SOC, consistindo no Haggadah assim como o corpo para corpo continuará. A mensagem também foi que você precisa passar. E, em seguida, saída. Isso está na tela do telefone, você estará obtendo saída qualquer que seja o soquete, o que quer que o servidor envie para o cliente, a mensagem como auto alto, bem-vindo à programação do soquete quaisquer mensagens sobre centralis. Então, código inicial para que você possa não entender? Esta é apenas a declaração do programa. O que eu te disse. Você tem que abrir este link na sala. Este é o applica, este é o aplicativo cliente que estava no aplicativo. Em seguida, a solicitação será enviada para o servidor e o servidor responderá enviando o corpo. E então você verá no visor a mensagem qual foi a resposta e os alunos. Na página, é um fim que também podemos ver no comando errado, como quando você executa o código cerebral, você pode ver o que todo o cliente enviou para ele. Vimos também isso em detalhes na sessão anterior. Então, vamos ver aqui como a comunicação ocorre entre o navegador, o cliente e o Apache. Então, quando damos este link, mas este link Endo Chrome, esse link é enviado na forma de cabeçalho. Já discuti essa mensagem. Vi que o link será enviado para os clientes e os clientes e estamos digitando este link. E então o cliente constituirá, criará um cabeçalho, enviará para o servidor. Então, ele estará construindo o oculto e , em seguida, enviará para o servidor. Vimos como quando o cliente envia construções que eles estão indo, como é que isso é vagamente? Eu vi, nesse caso, o método está feito. Então vimos que isso dá esse resultado. Vimos, então há uma versão de protocolo, então isso é um host. Então essa é uma região enorme no formato mais antigo em que um sentido de prazo para o servidor em termos de cabeçalho que já discutimos antes desta sessão, por favor, passe por isso. E Dani, eu mencionei, envia a mensagem para a sétima vez que ouvi dizer o que deveria responder a esse cliente também, em termos de cabeçalho em si, eu não fiz formato de corpo, é apenas repetiu esse sentido unimodal lateral e estímulo que responde ao cliente e o servidor o envia nessa linha. Portanto, deve estar no formato de cabeça e corpo. Então, vimos que o servidor enviará essa prova de toda virgem, então o status de que é bem-sucedido ou não. Portanto, número de status da mensagem de status neste formato de mapa e, em seguida, essas datas de detalhes, identificam o tipo de conteúdo. Então, no nosso caso, é simplesmente mensagem de texto. Se ele escolher, o tipo de conteúdo é texto, HTML. Se fosse a imagem, ela daria benefícios e, em seguida, o conteúdo terrestre, isso significa que a quantidade de dados são transferidos do servidor para o lado do cliente e, em seguida, linhas não vazias. E aqui você estará escrevendo a mensagem. Então, vamos ver como escrevê-los como h no site do servidor. Houve além da mudança que é necessária, além da placa entre uma cena ou o servidor TCP. Então esta é uma mensagem que precisamos enviar do servidor para o cliente. Estou apenas mencionando aqui nesta apresentação e depois reescreva o quadro. Então, isso fará com que você entenda esses revisados ou pequenos, conceitos revisados ou pequenos, objetivos de comunicação com álcool. Então há uma razão pela qual eu estou apenas indo, passando por esta apresentação agora esta mensagem, o que você enviará, você simplesmente não corrigirá os índices estão adicionando ou você pode definir, você pode hash define max, somar tamanho e você pode chocar para encontrar seus olhos para este número e você pode ler os sinais aqui. Este é apenas um simples Gooding para entender o conceito. E então o que estou fazendo, estou inicializando essa string para este quadro. Esta é apenas uma string que é a mensagem, são caracteres Ariel e estou escrevendo texto de string e estou passando essa string para ela. Então, como eu disse que, como vimos neste slide, isso faz, eu deveria enviar este formato. Então, esses detalhes sobre mim, preenchi a mensagem que é a versão do protocolo do que é a versão do protocolo os números de status da mensagem Davis e o conteúdo e o conteúdo do servidor de data. E então, se você vir essa mensagem, ela é bits no HTTP, então a versão do protocolo e o status da organização sem fins lucrativos , então a assinaram como uma mensagem do que os continentes e, em seguida, são 47 conteúdo. Ou seja, quantos dados são enviados do servidor para o tempo de conteúdo do cliente que leva para o vapor. E então adicionamos o corpo na verdade, então haverá uma linha em branco de barra e há uma nova linha. E então corpo estou escrevendo oi do tsunami. Posso escrever qualquer coisa que vou escrever. Posso escrever programação de soquete de desossa, olá ou qualquer mensagem que você queira censurar. Esta é uma mensagem com os alunos. Esta mensagem será exibida em sua página. Então é isso que você enviará do lado do servidor. Então, vamos começar nosso código. Portanto, você precisa instalar o código de bloco está disponível gratuitamente e é um código aberto. Você não precisa comprar a licença. É muito fácil de instalar e ir ao site de download, basta instalá-lo e começar a programar com ele. Vamos começar. No meu caso já estou aberto antes do menu e clique duas vezes no bloco de código. Você receberá esta página. Vamos criar o novo aplicativo de console de projeto do projeto. Clique em Avançar, C plus plus e, em seguida, o nome que está aqui. É. Vou dar um nome sensato, clique em Avançar e depois terminar. Ele vai despejar a chamada Hello World para você. Então, deixe-me aumentar o tamanho do texto para que você possa ver o que você vai digitar colina apenas um segundo. Os judeus serão muito grandes. Deixe-me mergulhar uma cópia e colar o código. Já escrevi o código. Não quero desperdiçar um único forro de digitação de diamante, como explicar cada linha. Portanto, é apenas o código repetitivo. Simplesmente adicional esta mensagem que mostrei nesta apresentação. É isso. Então, vamos abrir. Eu coloquei uma cópia. Certo. Este é o código inteiro, então isso não é novo para você. Você já viu isso na valorização da comunicação do TCP. Deixe-me revisá-lo. 12 como linha extra no caso de comunicação off-line do servidor HTTP. O que estamos fazendo antes de tudo, execução do nosso programa começa a partir da função principal. Novamente, o motivo de ver a função lumen é um ponto de entrada para iniciar a execução de qualquer programa. Quaisquer que sejam as linhas de código que você escrever nesta função principal, ela será executada linha a linha. Então agora temos que declarar esses arquivos de cabeçalho. No caso do sistema operacional Windows, ele mostrará que podemos usar as funções a partir disso. Sempre que você estiver chamando qualquer função, usando qualquer função. Como eu descobri que você mencionou que não dará uma corda de prado compilada na verdade, isso é um personagem de livro real e nós simplesmente inicializamos com esse formato. Vou explicar isso do mesmo formato. No entanto, estou enviando as mensagens, aprendendo aprendendo com a programação de soquetes. Então. Estes são dados do WSL. Então você já viu o que é WASH. Revise-o rapidamente. Portanto, esses dados do WAS são usados para inicializar a Socket Library do governo. Vimos este WAC d tau, que é pós-operatório todos esses dados, que é que é um estruturado cruzando as estruturas em segundo argumento. Então, o que faz essa estrutura? Então, antes de tudo, qual é essa função, como eu disse, ela é usada para inicializá-las. E o Socket Library, zíper retira esses dados do WSS nos quais o primeiro argumento diz sobre o que o programa quer usar, qual login na biblioteca de tomadas femininas. Como o programa quer usar a versão 2, temos que dar neste formato, faça um e, em seguida, colchete redondo dois vírgula 0. Então este segundo argumento, que são dados Ws, que é uma estrutura que é essa. Você criou um objeto dessa estrutura. Essa estrutura. Então, aqui estamos passando isso. Você está mencionando o endereço nessa estrutura, então ele é derramado por essa função. Qual é o propósito dessa estrutura? Então, dirá que esta biblioteca de sal de diamante passará as informações críticas. Nenhum programa dizendo quantos soquetes podem ser criados e outras informações necessárias. É assim que ele construído quando chamamos essa função de destino, que é usada para inicializar a biblioteca de soquetes de vento. Então, vimos neste ROSI e você precisa criar um soquete chamando a função de soquete três argumentos ou seu argumento de posts. Esta é uma família de interesses Dennett. É EOQ sublinhado em um segundo é um tipo do tipo de soquete. É um fluxo. Estamos usando uma comunicação de soquete confiável e lembre-se sempre que estamos fazendo a comunicação de HTTP, você sempre deve ocorrer no próprio TCP, que é o rack VCB onde você tem dimensão. Você vê o protocolo de comunicação musical? Você já viu no soquete para ser seis sessões. E você mencionou o tipo de fluxo e, em seguida, os zeros. Este é o protocolo de comunicação padrão. Vocês em um caçador 0. Então, agora criamos o soquete, agora ele retornará o descritor do soquete. Então, por este descritor, estaremos chamando a função de ligação, chamaremos a função de escuta e, em seguida, saia da função por este descritivo, pois estaremos vinculando a este soquete descritor de soquete, então esse pedaço de código é este. Isso, já vimos que essa é uma estrutura. Adicionar R. Então é, é uma estrutura que está aqui que escrevemos, embora apertada, esta é uma estrutura e este é um vídeo, um pouco de uma esfera criada que você tem, eu disse que nós tem que criar novas vantagens obter o post descritor de soquete chamando a função de soquete e análise em um disco notícias, saga, descritivo e Nicole a função de saída que já adicionamos. E essa estrutura. Nesta estrutura, você estará preenchendo o endereço IP onde esse Edward precisa se vincular, bem como suporte normal, todos os detalhes necessários que você estará dando lá. Isso é o que você está dando em um DVR e exclui qualquer pouco intrusivo. Expliquei em detalhes qual é o significado desse endereço IP ao qual o servidor deve se vincular é que utilizamos para isso. O que é um EdD na necessidade sublinhada pode ser vinculado a todas as interfaces de rede na mesma máquina host. Portanto, se você se conectar, se você estiver usando nenhum, Ele está tendo um endereço IP diferente, é uma interface de rede independente. Esse endereço IP o servidor novamente preenchendo o que você estiver usando para se conectar a ele no pescoço. Se você estiver usando o land out, se você estiver usando Wi-Fi, Wi-Fi e tendo uma ideia diferente, uma interface de rede diferente. Novamente, se você estiver usando Wi-Fi, ele irá, ele pode se ligar a cinco anos de dissolução. Aí está. Ele pode estar comprando duas interfaces de rede que adicionaram então, isso é o que mencionamos que então o número que estamos ouvindo dub. Lateral deve vincular a este número de porta é 0 AT para a conexão HTTP. No lado do cliente, ele deve estar se conectando ao mesmo número de porta. Ou seja, o que está comprando dois. Portanto, esse é muito importante número importante de diabetes que a linha deve ser mapeada para a mesma, deve estar se conectando ao mesmo. Então, essa estrutura que sentimos que estamos chamando a função na qual estamos enfrentando esse descritor de soquete. Estamos passando esse endereço. A interrupção na verdade tinha bastante sobre diabetes e o número da porta e o tamanho dela. Então tivemos uma chamada a função de lição. Agora, você está ouvindo. Ouça a função novamente, estamos passando o descritor de soquete em oposição ao argumento. O segundo argumento contém quantos números da conexão do cliente devem estar na fila de espera. Quantos decidiram o que novamente, processam, na verdade, um por um e o processo Ken uma vez concluída a linha de comunicação no meio do mês, então ele estará processando a outra linha para quantos números de números que deve estar lá deve estar aguardando o site de conexão do cliente, mas aceitando o site de conexão de linha em declínio, conectando-se ao cliente. Então, quantas solicitações de clientes podem existir se houver várias linhas? Então, se houver três linhas, queremos estar ligadas, Connect na verdade, então elas devem estar na linha de espera que está sendo processada. Então podemos mencionar esse número de nove condições que devem ser inovadoras. Você mencionou zeros, pois queremos apenas uma conexão após vez. 17. Session10 de execução de programa HttpApacheServerClientCommunication Communication Windows C++ Part: Depois de obter uma conexão do lado do cliente, ela está ouvindo e, em seguida, aceitará a conexão. Então você está no passado o descritor do soquete. Passaremos esta estrutura que está vazia. Isso é derramado quando chamamos a função de saída aqui, os detalhes do cliente estarão lá qual endereço IP, número da porta e tudo isso. Esta ISO para destruição, verificando esta condição, se ela é bem-sucedida ou não bem-sucedida, então ele retornará sob carga é cripto descritor de dividendos do soquete, novo descritor do soquete. Então, por que os descritores são necessários é para você o primeiro descritor que está morto, é necessário x para ouvir. Solicitação de conexão independente financiada na verdade. Isso será envolvido com o do cliente. E o soquete pode ter DO é usado para enviar e receber os dados. Então, isso estará envolvido nisso, neste trabalho. Portanto, isso será diferente do que estamos fazendo. Aqui. Tivemos recebendo a mensagem a partir do prazo. Então, qual mensagem aqui você receberá simplesmente, já que escreveremos, digitaremos ou escreveremos isso, eu fui um link no navegador Chrome. Como eu disse, você passará apenas um número de porta de host local. Nesse caso, esta mensagem, mas seria passada de renda de cliente para servidor do antigo soviético acima do link Bassanio. Então eu disse que deveria ser rápido em termos de nossos comentários de cabeçalho de cliente para servidor, mensagem será passando o manuseio viu esse formato de cabeçalho nas sessões anteriores. Ele deve estar enviando o método e deve haver U1, U2. Deve ser o custo da versão do protocolo no método. Em seguida, ele deve ser o URL, versão do protocolo, o host e, em seguida, os cabeçalhos do User-Agent. Então, sempre que você estiver recebendo essa mensagem do cliente, essa mensagem será recebida nesta string que é cerca de quatro e estamos imprimindo para que você obtenha todas as coisas impressas no lado do servidor. O que o cliente vê que está no formato oculto, ou seja, sobre o movimento no HTTP, em seguida, sobre o URL e, em seguida, sobre eles. Sobre isso, sobre o método possível, você obterá o método, então você receberá novamente, URL e você obterá a versão HTTP e quem é a região do usuário, você verá isso. E então, a visão de Deus, que está enviando a mensagem é esta. O que essa mensagem que vimos aqui e sentimos para esta, ou seja, estamos passando também a resposta do servidor no formato de cabeçalho, não uma mensagem de texto simples, não olá, oi, assim, somos. Você precisa escrever neste formato que a mensagem que será enviada do servidor para o cliente esteja recebendo a exibição. Display, que entrará no console deve ser o formato interno da página da Web. Então isso será um passar o login aqui. Então, esses dados, números, status, conteúdo da mensagem e a quantidade de dados que tem vínculos formam nosso prazo, em seguida, dez tipos para detectar SDM e o corpo principal. Esta mensagem ou esta reagem passando a programação simples de soquete de aprendizado de mensagens. Portanto, isso deve ser exibido no navegador. Uma vez que o sedimento seja conectado, faça-o na linha. Cliente descendo a complicação. Como o cliente, estamos iniciando o URL. E então você adiciona uma lista obtida de cliente para servidor, informal******. E também enviaremos essa mensagem e crédito formal e no navegador. Finalmente, você receberá a mensagem , pois isso é o que o trombo de análise ainda do servidor para cliente esta mensagem e, em seguida, adicionamos verificá-la. Nenhum editor é que, se for uma mensagem destinada a 0, então estamos fechando o soquete. Portanto, tudo isso é necessário codificação. Qual servidor HTTP, não precisamos fazer a codificação ou o cliente, simplesmente você precisa digitar um link no navegador que seja apenas ou mensagem que não escutou. E o denominador compila o código. E vamos ver. Isso é combinado com o arquivo atual. Então aqui você não pode ver mitose presente e deixe-me tentar. Novas ideias estão presentes. Agora você precisa executar este programa clicando em. Saiba como você quer, você tem que ir. Já contei na sessão anterior, também, vá para a View. E então, na perda, você tem que pegar esta caixa. Agora, quando você dá uma conta, na verdade, quando você constrói e executa, nesse caso, você pode ver aqui que o servidor está sendo executado e ele permite que ele pergunte, isso é viável se você deseja permitir o Nexis? Sim. Agora, o servidor está escutando a conexão de entrada. Agora temos que enviar, você precisa abrir o URL. Você precisa digitar um link no link no navegador. Esse será o simples, como eu disse, será o endereço IP local de um a $7 ponto ponto um e a recuperação do número 80 da porta digite este link no navegador que está em nove sites. Em seguida, a comunicação ocorre com servidor e o servidor enviará a mensagem em termos de herança e mitigará nesse navegador essa mensagem como a que devemos receber. Devemos obter este que é, seja o que for que você tenha dado a eles uma mensagem no site do corpo, aprendendo a programação do soquete. Vamos ver, vamos fazer isso. Eu abri e estou digitando esse URL. Eu disse que temos dois cotilédones, um a 710 No.1 dois pontos 80. Este é o endereço de loopback, mesmo endereço IP desse host local e números de porta na ligação sem servidor a esse endereço IP e números de porta. Então, no lado do cliente, devemos dar o mesmo que estamos dando e, em seguida, basta clicar duas vezes nele. Então aqui você pode ver que recebemos esta mensagem, eu cliquei duas vezes neste link. Eu tenho programação de soquete de aprendizado. Agora, o que aconteceu? Eu morri no navegador, navegador Chrome, neste endereço IP específico. O número da porta que decide o que é vinculativo simplesmente e esta mensagem que Deus recebeu, o que quer que o cliente esteja enviando a água, faça o serviço, e então ele irá, ele se converterá, se encontrará este URL antes de enviar para o servidor, irá convertê-lo para o formato de cabeçalho para que no serviço eu receba essa mensagem. Então, vamos ver essa mensagem. O que temos aqui, você pode ver decidido onde recebi a mensagem do lado do cliente em termos de cabeçalho, sempre que você adicionar um novo passado aqui em fertilização in vitro, endereço IP e o número da porta. Então, ele foi convertido para o formato de cabeçalho e foi impresso no lado do software, seja qual for o cliente descendo para o servidor. A mensagem. Aqui você pode ver como eu disse, todas essas coisas que o cliente dele vê esse método, a versão do protocolo, então o host é esse, depois o agente do usuário. Portanto, esse declínio descendo para o servidor que estamos imprimindo no lado do servidor. Isso, como você pode ver, nós vimos neste próprio programa, assim como você viu neste próprio programa, viu. Essa linha diz, na verdade, e do outro lado, o que está recebendo a mensagem e estamos trazendo isso é ano tanto em buffer quanto estamos imprimindo no topo, não vendido. Portanto, essa é uma razão pela qual estamos recebendo toda essa mensagem, seja qual for o cliente enviando para o servidor em termos de cabeçalho. Agora, o cliente, então o servidor, na verdade, uma vez que ele recebe essa mensagem, depois adicionamos novamente isso lateralmente e, em seguida, o servidor está enviando mensagem. Depois de receber a mensagem do cliente, o servidor responderá enviando a mensagem. E esta mensagem que vimos aqui, estamos passando o que estamos passando esta mensagem e despeja todo o tipo de formato no mesmo formato. Mas estamos escrevendo todos esses detalhes, este Fama Titus, fotos diferentes e para o cliente ou o servidor. Primeiro, haverá a versão do protocolo que o estado. Esse número é a mensagem de Peter, o tipo de conteúdo, a duração do conteúdo e todas essas coisas, depois com o banco e depois o corpo. Que mensagem? Esta mensagem que o servidor de ciência Southwest envia para o cliente, temos que exibir nesta base. Então você pode ver sobre a programação de soquetes de aprendizado. Portanto, esta é uma comunicação bidirecional que ocorreu. É assim que você precisa correr. Mais uma coisa a mencionar, na verdade, para você, se você nunca rodou a comunicação do soquete em sua única máquina, mesma máquina pode ser sempre que você estiver escrevendo este novo ADA, acabar com o número da porta que você pode estar recebendo como editor. Na verdade, isso é muito importante, então faça um novo download. Você pode estar recebendo uma permissão de edição negada porque existe um firewall, na verdade, no qual ele não permitirá que você se comunique. Pode acontecer. Isso pode acontecer. É permitir, mas se não permitir, você dá a permissão negada. Na verdade, nesse caso, você precisa fazer algumas configurações. Acabei de mencionar que você mencionou isso agora para que seja útil para você. Portanto, não perca esse DOM, o que é muito importante. Pode ser algumas fases um problema, você pode corrigi-lo simplesmente. Você tem que apenas um segundo. Nesse caso, você precisa abrir o bloco de notas. Você precisa, na verdade, isso não está permitindo que você se comunique na verdade, e isso é um erro realmente se conectando ao próprio host local. Portanto, você precisa modificar o arquivo host. Esse arquivo host, você não tem permissão para modificá-lo como local específico do presidente que eu informará agora que o arquivo host, você tem que adicionar uma linha que, na verdade, então que ele pode se conectar ao host. arquivo host que você estará modificando sua porta não está tendo permissão, então você só precisa abrir o bloco de notas dessa maneira, devolução de dinheiro, você tem que escrever, corredores os administradores perguntarão a você, onde você quer permitir? Sim. Então só vou. Tudo bem. Esta linha, na verdade é de um a US $7 ponto um e depois local. Este é o formato. E eu vou salvá-lo. Aqui. Eu vou salvá-lo pelo nome como com, ST é forçado. Então, qual será a localização dele? Será a lista C. Program finds. Eu tenho que ir para o sistema C Windows Trinta e dois drivers. Em seguida, EDC. Este é um veterinário de localização e vou precisar salvá-lo. E então este é o, eu preciso salvá-lo aqui clicando em Salvar. Já o salvei. Na verdade, não quero salvar novamente, então já está vendo, basta clicar em ver. Depois de clicar em Salvar, nesse caso, isso será alinhado para evitar problemas negados à permissão odontológica. Isso permitirá que você voe. Na verdade, não haverá um viável, então você pode se comunicar por esse host local. Essa é apenas a configuração necessária. Agora, de volta à apresentação. Agora acabamos quase com isso. Então, sim, terminamos com esta comunicação do servidor HTTP nove, ou seja, a comunicação do servidor HTTP Apache com o esboço do navegador que vimos na ideia e aqui a executamos. Assim, você pode ver como a comunicação ocorre e você pode ver mudanças mínimas necessárias em relação à comunicação TCP, apenas temos que comunicação TCP, apenas temos enviar a mensagem do servidor para cliente. No pedal formal, vimos como, qual é o formato dele e esperamos que você o envie. Quais são as sessões que vimos? Como quando você fornece o URL no navegador que está no chão Chrome, você pode usar qualquer navegador, firefox, qualquer coisa. Então, como esse cliente envia a mensagem para o servidor, ele constituirá um cabeçalho. Vimos isso imprimindo por cima. A identidade do servidor viu como o código do lado do servidor, que será gravado. Enviaremos a mensagem do servidor para o cliente em tipo formal de que você viu ou conversou para enviá-la em qualquer um dos programas. E isso não é despejos disso. E, em seguida , a mensagem que o servidor envia será exibida no lado do cliente. É assim que a comunicação ocorre e terminamos com esta sessão. Obrigado. Muito obrigado. 18. Sessão de Socket Session111 HttpApacheServerClientCommunication Communication Linux C: Olá, bem-vindo a esta nova sessão. sistema operacional Polyphemus não tinha, estaremos fazendo outro programa para ter a comunicação entre HTTP, servidor Apache, bem como comunicação do cliente do navegador usando a linguagem C. Então, antes desta sessão, fizemos mais um programa no sistema operacional Linux. Vimos a programação usando C, bem como C plus plus para mim, fiz a comunicação para TCP e comunicação com o cliente. Portanto, nesta sessão, nesta sessão, explicarei como conseguir o servidor HTTP Apache navegando na comunicação on-line. Então, aqui o que vamos fazer, esse mesmo programa que fiz para o sistema operacional Windows usando C plus plus. Você passou por essa sessão também aqui, dependendo de suas escolhas, se você está tendo o sistema operacional tem janelas, você pode gravar essa sessão e escrever a codificação para isso. Deve ser uma parte de vários crescimento do que evitar sessões anteriores. Se você estiver tendo o sistema operacional Linux, você pode indicar esta sessão, mas faremos o mesmo programa para o sistema operacional Linux. O que acontece nesta borda para lhe dar sobre Di Salvo, comunicação com o cliente rosa, um shuffle. O usuário fornecerá um link no navegador. navegador pode ser qualquer coisa, pode ser a caixa mais silenciosa que pode ser cultivada. O que acontecerá neste caso, pois este navegador é um aplicativo cliente. Portanto, a solicitação internamente vai para o Apache, meio que ímpar, será em termos de cabeçalho. E, em seguida, o servidor envia uma resposta em termos de cabeçalho. E então essa resposta estará lá com a mensagem, o que quer que o servidor queira enviar ao cliente tudo o que será exibido na página no navegador. Então, vimos, fizemos esse entendimento do navegador do servidor HTTP Apache em nossa sessão anterior lá, em nosso entendimento desta sessão, mas na Islândia você o conceito O navegador do servidor HTTP Apache descreve como isso, como o cliente enviaria uma solicitação para o servidor em termos de formato paralelo. E então como In enviar uma resposta para o cliente em termos dela que incorpora todas as explicações abordadas em uma sessão. Nessa sessão, você pode exigi-lo para este sistema operacional Linux também, e também para o sistema operacional Windows. E então eu cobri outro cirurgião para o Windows em que temos temos, terminamos com a programação e execução nas rugas de iodo xilogravura aqui vai fazer para o Linux, fará a programação Polynices e nós a executaremos. Mas aparelhos, compreensão dos conceitos que você pode relatar a sessão anterior que eu não fiz. Eu abordei o entendimento básico disso, como o servidor e o cliente Apache se comunicam em termos de envio do cabeçalho e como ele responde ao lado de nossos presentes. Assim, você pode entender os conceitos retornam as sessões anteriores, que são incomuns tanto para Windows quanto para Linux. Bem, vamos começar aqui. Como eu disse, o que faremos aqui, usarei a caixa silenciosa do comprador como navegador. E eu estarei dando esse link. Este link, que eu vou nos dar simplesmente, você pode, você sabe que este $127 ponto 0 ponto um, é um endereço de loopback. Expliquei você. Endereço de loopback significa que ele está se referindo ao endereço IP dos capuzes locais Lucas minha cadeia. Então este é o meu laptop onde quer que eu darei esse link no meu navegador. Eu tive todas as dimensões, este ponto de $127, ele se reportará ao endereço IP da minha máquina local fora do meu laptop. Isso simplesmente significa que, e esta é a porta número 80 no navegador significa que você merece o aplicativo cliente. Agora esta linha se comunicará com eles. Portanto, um descrito é enviar esse link para o servidor para o servidor que agora é a parte dois servidores. Então eu expliquei naquela sessão anterior talvez nunca explique os conceitos. Então eu expliquei como esse cliente enviará aqueles na cabeça o que todas as coisas representarão a calhar. Se você tiver que passar pelos detalhes, denuncie essa seção. E, em seguida, o servidor enviará uma resposta ao cliente. Então, simplesmente você receberá o que o servidor enviar uma mensagem será carregado sobre isso. Eu estava no Brown disse que isso está na bola de fogo. Então também fizemos a programação e outra sessão para o sistema operacional Windows. Agora aqui você verá para o Linux, isso é tudo o que vamos fazer. Basta dar este link no lado do aplicativo, no lado do cliente que está no lado do navegador, use-o que é um Firefox. E, em seguida, a solicitação interna será enviada de cliente para servidor na própria célula, eu lhes darei mensagem em termos de deslocamentos no formato de cabeçalho superior dome e qual formato de corpo. E isso será carregado no seu navegador, seja qual for o servidor enviar mensagem de saudação que será exibida no seu navegador que está no lado do cliente, seja qual for a mensagem ou se o programa de soquete, qualquer coisa, qualquer mensagem que foi enviada. Ele será exibido na página, página da web Walmart. Isso é o que faremos em nosso programa. Então aqui, isso é apenas uma explicação o que eu te disse. Em termos de altas doses, você pode passar por isso. Em seguida, o lingual enviando um produto formal para o servidor a partir do cliente. E em resposta, vou contratar mensagem e crédito formal e corpo. Se você tiver que relatar o formato adequado do cabeçalho e do corpo referidos à sessão anterior entendendo o conceito de programa. Programação para o outline do servidor HTTP. Você pode simplesmente entender, passar por essa sessão para entender o conceito com mais detalhes. Então. Esta é apenas a cabeça, um formato que é enviado do servidor para o navegador. Então este é apenas um formato que eu enviei, que eu exibi aqui. A barra lateral sente qualquer que seja a linha descendente ou você está dando um URL no lado do cliente que está no chão certificável. Em seguida, a solicitação será enviada do cliente para o servidor. As fazendas são paralelas. Isso é o que o servidor enviará uma resposta para recusar, e isso é cada resposta. Portanto, esse é o tipo de resposta do formato de cabeça e corpo. Aqui você pode ver que eu disse que mais díspares não está no cabelo determinado que o servidor envia para o cliente, quer chamar a versão do protocolo que estamos usando o HTTP, então o status, seja bem-sucedido ou não, os números de status, a mensagem de status. Depois, há detalhes, ou seja, o servidor de data e, em seguida, esses tipos de conteúdo do tipo de conteúdo. Já que no nosso caso, em nossa programação, enviaremos, enviaremos um formato de texto simples. Enviaremos uma mensagem simples, não enviaremos a imagem do servidor para o cliente. Em resposta, estamos mencionando o tipo de conteúdo deles como HTML de texto, lipídio era uma imagem e depois era diferente. Ele tinha Nós estaremos enviando simplesmente detecta como uma resposta de servidor para cliente. Mas essa é a razão. Este cabeçalho que estará lá e será enviado do servidor para o cliente, será endoderme. O tipo de conteúdo será texto, HTML e len, quaisquer que sejam os bytes de dados aqueles sedimentares tendendo a diminuir em seus vínculos que temos que mencionar aqui. Então, uma linha em branco que é um pouco e este corpo, esse corpo, estaremos enviando a mensagem do servidor para o cliente, então precisamos de esforço. Você pode passar por você. Você pode entender que isso é água. Esses sempre enviaram para o cliente. E então você receberá a página carregada. Em seguida, movendo-se para a próxima coisa. Então aqui, está tudo aqui, como na sessão anterior deste sistema operacional Linux. Quando fizermos a comunicação para o cliente do servidor TCP, o que, o que será necessário para o cliente do servidor HTTP aqui, se você comparar com a sessão anterior atendida e nós fomos sistema operacional de santidade de miniatura para linha de servidor TCP. Não há muita diferença neste HTTP sobre comunicação digital porque ele assembléia, nós adicionamos os estolons. Temos que dar a mensagem. Se enviarmos uma mensagem, ela deve ser desse tipo. Ou seja, ele deveria estar contendo o corpo Hadean Haydn. Você pode ver que ele deve conter o cabeçalho. Este cabeçalho. Esta é a visualização diagramática. Parece assim. A versão então o número de status da mensagem de status e todos esses detalhes, tipo de conteúdo, conteúdo, Lin, linha em branco e, em seguida, corpo. Então, temos que escrever em nós nosso código. Então, aqui estaremos escrevendo apenas o código do servidor enquanto o servidor HTTP, não precisamos escrever o código do cliente. Ao fazer isso ou programar. Somente cliente temos que dar um link no roteador o débito e, no lado do servidor, você tem que escrever este código e temos que enviar esta mensagem. E fazendeiro, eu não corporei, o que mencionei neste diagrama. Quando o serviço, Isso quer subir, isso deve significar este mais quente. Isso é apenas uma modificação. Se você tiver que alcançar este Instituto de comunicação, tão bem inclinado, então você tem que adicionar essa mensagem extra. O que faremos para comparar com a sessão anterior do cliente do servidor TCP, o que você deve beber linha era simplesmente enviar uma mensagem para o servidor. Aqui, o que acontecerá? Se você comparar esse programa com esta mensagem HTTP com o servidor em termos de URL. E então isso será internamente, será em termos de formato de cabeçalho, deveria ter abordado na sessão anterior para entender o conceito disso. Em seguida, esse servidor ascende então disse sobre disponível. Então envie uma mensagem em um vídeo que data a mensagem do site do cliente disponível. Escreva também a mensagem no soquete. Então essa é a nossa modificação e quais mensagens serão desse tipo? Isso é desse formato. Essa é a densidade da versão do protocolo HTTP, esse número, números de status, mensagem de status e, em seguida, o conteúdo terra, quantos dados ele está transferindo da linha solar e o tipo de conteúdo onde há excesso de GM e, em seguida, corpo. Então você pode ver barra e isso é uma linha em branco, corpo e corpo. Sim. Oi, de qualquer que seja a mensagem, o que quer que você esteja escrevendo aqui será passado para o cliente em resposta. Portanto, isso é uma coisa extra que vamos adicionar para o servidor HTTP ou cliente se você comparar com as polinizações de programação anteriores em que o FDA, PCP vários nove e agitar todos os barcos. mesmo se você comparou em que seguimos na sessão anterior. Agora vamos começar a programar feiúra usando a linguagem C como eu para alcançar através do sistema operacional Linux. Sistemas operacionais Unix. Então eu espero que você tenha tido sobre esse domínio ou estamos simplesmente mudando para o código que eu já escrevi. O código é um código para HTTP. Só um segundo. Deixe-me fazer coisas com gênero. Esta é a placa de pátio para o servidor STDEV. Desde que eu disse que temos que escrever o código que lado a lado, não para o lado do cliente, do lado do cliente, presumivelmente estamos dando um link. Ou seja, como eu mencionei, você acaba sendo indigente $127 ponto um, e o número da porta, que é um 018. Ele informará que o cliente se reportará à mesma máquina host local que eu tinha no servidor que está em execução e a mesma variável de número de porta. Então, o que é meu também? Deixe-me abrir isso. Como eu te disse, qual será a diferença? Se você comparar, se você viu o sistema operacional Linux, esses arquivos de cabeçalho usando a programação de soquete de modelo. Esta é uma função principal que é a entrada para iniciar uma execução do seu programa. Todas as coisas que são repetitivas, ou seja, novamente, estão no Linux. Eu lhe disse esta função de soquete, que chamaremos antes de tudo, postagens e argumentos serão essa família de endereços da Internet. Dados do segundo fluxo de argumentos que são um tipo de soquete. E o terceiro, o grupo de abnegação está bem, é igual a 0. O que ele retornará? Ele retornará o identificador do soquete Deixe-nos servidor. E aqui será do tipo e início do caso do Linux. Isso é o que a luz do instrutor é usada para preencher os detalhes para que o servidor novamente, qual endereço IP e número da porta. Então nós tínhamos isso, nossos corpos compram nele também, particularmente por endereço IP e número de porta e nesta estrutura podemos sentir um pouco de detalhes endereço IP e número da porta. Você tem bastante aqui nessas três linhas, você pode ver esta. Onde você está chamando minha função? Você está passando essa alça do soquete que temos aqui e estamos analisando essa estrutura. E então estamos ligando para ouvir, ouvir. Eu te disse que isso é um soquete, é um identificador e este 0. Isso significa quanto número de conexão de linha deve estar na fila de espera. Portanto, não queremos que nada leia na leitura que você 0 V dano causado. Você pode multiplicar dependendo da sua exigência e do número do pedido feito por razões pelas quais estamos fazendo membros do conselho de comunicação recomendado pelo X GTP. Fizemos isso como meu para este número de porta. Então, além disso, se você falar sobre como PIB por HTTP, já que eu lhe disse que esta extremidade da mensagem será enviada do lado do servidor em nossa sessão anterior. Já que cobrimos o servidor TCP e a comunicação, apenas aquelas placas que comem o que o cliente sente. Assim, você pode fazer qualquer complicação que fosse uma ferramenta de comunicação de canto onde você também pode enviar do sol era do lado do servidor. E você também pode ler e escrever no lado do cliente, reto, dependendo da sua exigência. Aqui, como o que quer que o cliente envie uma mensagem para eles, darei uma resposta a ela. E essa resposta, deve ser em termos desse cabeçalho e corpo. Então eu expliquei você na apresentação sobre isso e também os detalhes para híbrido e muito mais. Você pode passar pelas poucas sessões que ouvi antes da qual abordei entender o que é o PIB, várias comunicações com o cliente. Você pode passar por essa sessão. Isso é comum para Windows e polynom. Aqui está a coisa que não está enviando a mensagem, essa mensagem de Deus inicializando com esse valor. Ou seja, HTTP 1.1 não conhece status, número de status, mensagem e, em seguida, o sucesso de um conteúdo sob demanda. Quanto comprimento é, 47 e depois tempo de conteúdo lá é, é um humano. Em seguida, na barra e há uma nova linha, há uma linha em branco e, seguida, estamos passando esta mensagem. Mas este é o servidor de bumbo para o lado do cliente. Esta mensagem aqui, o que nós anteriormente, quando chegarmos aqui, então enviaremos esta mensagem mais tarde. Vamos me enviar como uma conexão simples dos arquivos do site do cliente novamente a tangente do soquete e , em seguida, essa estrutura. E então obtemos novo, novo identificador de soquete, novo descritor de soquete. Portanto, esse descritor de soquete que é novo será envolvido na operação de leitura e gravação com isso na linha. Enquanto os indivíduos do soquete retornarem aqui estarão envolvidos na conexão com essa linha. Então isso é o que, e então aqueles tristes o que está lendo quaisquer linhas e a mensagem que é ascendente ou URL, ou seja, um para muitos, $7.010 ponto um e os números antigos, modo que link que é um local ou a ordem com eles link, ele estará nos enviando uma mensagem será convertida em paradata formal, na verdade, e ele irá relatar, será passado para o servidor e sobrinho e você estará coletando aqui no número quatro, você pode simplesmente imprimir esse buffer no lado do servidor para que você obtenha todos os dados em crédito formal que os clientes e para servidor-1 me dê o link o Firefox. Mas também em arma versa, o que enviará uma resposta. Então você pode ver que escrevemos este código extra aqui. Em comparação com a escrita de código anterior, estamos chamando a função correta do lado prateado através da análise deste identificador do descritor no soquete, esta mensagem na verdade e quando mensagem simplificada, esta mensagem é a mesma mensagem que vimos. Há essa mensagem, esta mensagem descendo do servidor para o cliente em resposta. Você pode ver que , portanto, estamos chamando a função correta do lado do servidor, processando o identificador do soquete e essa mensagem. E então estamos verificando erros. Isso é distorcido como a comunicação ocorre. Então, vamos compilar o código e vamos dar um link no navegador ou no Firefox e ver o que acontecerá no lado do servidor. Deixe-me postar a pontuação compilada por, já que estamos escrevendo o código que seria o soquete do servidor GCC HTTP ponto c. Você pode ver aqui um ponto fora é criado, basta executá-lo. Então você pode ver no topo O que é ideia ouvir as conexões recebidas. O que está escutando a conexão recebida? Agora, o que faremos, temos que sempre postar o lançamento do nosso servidor. E então temos boo-boo que comunicações no lado do cliente, ou seja, no navegador aqui, usaremos o Firefox. Tenho hiperlink de $127 ponto um e o número da porta. E então, dentalmente, você adicionou qual o cliente que fizemos no lado do aplicativo, lado do cliente, este cliente enviará uma solicitação para os sacadas informados pela calçada. Então, seja qual for o sinistro descendente enviará uma solicitação para o servidor que estaremos lendo no servidor. Assim, você pode ver a mensagem impressa no servidor, qual cliente está enviando nos formulários Al-Qaeda e o servidor enviará uma mensagem para o cliente. E você pode ver como o navegador, a página será carregada com essa mensagem como qualquer que seja enviada em resposta ao declínio. Vamos ver um por um. Primeiro, deixe-me abrir isso. Você amplia no Firefox no site do aplicativo. Você pode ver como este jogo de mensagens no lado do aplicativo, no lado do cliente, no centro da calçada aquática. Vamos voltar ao terminal e ver o que todas as coisas foram impressas em ambos os lados. Assim, podemos ver aqui o que aconteceu post para o chamado do lado do servidor que temos ou executamos este aplicativo de servidor. Execute, temos R1, desculpe, o lado do servidor, isso é isso. Recebemos essa mensagem ouvindo a conexão recebida. Então, no lado do cliente, demos este link que é 127 pontos e dois pontos t. Então, nada estava morto e a praia, era apenas essa bagunça. Este link que dissemos, nós demos neste Firefox, que é o lado do aplicativo, do lado do cliente, este link, que é desta mensagem, Deus, Deus enviou do cliente para o servidor em crédito formal. E então NACADA, temos nossa reabilitação impressa no lado do servidor. Então você pode ver que isso é escuro. Este é o cabeçalho, na verdade, em nove estados. Tudo isso está indo. Este é um cabeçalho qual cliente? Cliente para o servidor. Então isso está à frente desse formato, que é o agente do usuário host e existe e todos esses detalhes. Então, se você tiver que saber esse detalhe de qual resposta de cabeçalho do cliente para o menu do servidor fornece qualquer link nesta luta ou falso, mas oposto. E você vai para a sessão anterior que está entendendo pegajosa seja uma comunicação de cliente de servidor de grupo, você está passando por essa sessão, mas um inexplicável sabia o que todos os cabeçalhos contém de regressos e de cliente para site e qual resposta não era cliente verdadeiro em termos de cabeçalho e corpo. Então você pode passar por essa sessão. Espero que você tenha ido e você vai passar sequencialmente por todas essas sessões. Isto é o que você recebe do cliente, terminará em resposta do lado do servidor à medida que estamos enviando a mensagem no lado do nosso código, nós os escrevemos e a programação segura do soquete de aprendizado, para que isso seja enviado para o cliente. E isso é o que vemos aprender programação de soquetes. Isso é o que fizemos com essa comunicação. Comunicação com cliente Http. Nós fizemos neste sistema operacional Linux usando a leitura da linguagem C que você precisa escrever em ambos os lados do nosso quadro. Agora. Obrigado. Estou pronto para esta sessão. 19. Sessão de soquete12 de bloqueios de bolsos em MultiClientServer para o selecionar 1o primeiro semest: Olá amigos. Hoje vamos ver sobre o bloqueio, bem como os soquetes sem bloqueio. Quais são as vantagens de usar esses soquetes? Assim como veremos o uso do select. O que este selecionar e qual é sua importância será um anel dessas coisas na sessão de arte, bem como quando vemos como alcançar a comunicação de servidor multilinha na Lena usando a linguagem C. Vamos começar um por um. Bloqueio, bem como os soquetes sem bloqueio. Modo de bloqueio e sem bloqueio. No caso do soquete. O soquete pode estar no modo de bloqueio ou pode significar não bloqueio. Mais sobre o modo de bloqueio postar o modo padrão da chamada de soquete está bloqueando a alma. No meu treinamento, expliquei como criar soquete. Vimos que quando encontrarmos mais do soquete que é criado será o bucket. Isso significa o que, o que está bloqueando? Chame isso c. Então, suponha considere que você está chamando a função. Então dy dt está bloqueando o carvão de quintal. Então você pode executar essa leitura em seu soquete. Sempre que os dados estiverem, estou na fatura do seu soquete, só poderei executar a operação de leitura a partir do soquete. Então, nesse caso, se isso não é um policial não está no soquete, o que acontecerá se você estiver chamando uma função? Obviamente, ele tem que esperar que os dados cheguem ao soquete que ele possa executar a operação de leitura. Então, isso é homem, não precisa esperar. Então você está fazendo o suporte de bloqueio de chamadas. É estuprar. Ele aguardará até que os dados entrem no soquete para que ele possa executar a operação de leitura bem-sucedida. Ele não está retornando imediatamente. Trata-se de código de bloqueio. Isso significa, suponha que no seu programa eu lute contra linhas de instruções e você esteja realizando alguns pacientes e no meio, você está chamando uma função. Ele verificará se os dados estão disponíveis no soquete. Sim, então ele lerá a partir do soquete e ele retornará na hora de dormir. Mas se não houver dados no soquete, ele aguardará o medicamento. Então, no momento em que isso bloqueará o operado em seu programa. Isso é o que acontece com o código de bloqueio? Então este é um dos exemplos que eu expliquei que é sobre uma chamada de bloqueio. O exemplo, o mesmo exemplo que lhe dei, que eu expliquei agora em detalhes. Ou seja, se você executar a batida de leitura, ela não retornou até que a carne esteja disponível no soquete para ficar vermelha. Isso é tudo sobre o modo de bloqueio. Então, vamos ver o que é o modo sem bloqueio é a definição de linha única nove. Ou seja, essas funções montaram imediatamente no modo sem bloqueio, e você está chamando a função de leitura. Então, o que acontecerá se não houver dados no soquete? Ainda assim, não vai esperar. Ele retornará imediatamente, ou seja, dados, depois lerá os dados e retornará um tempo morto. Independentemente de os dados estarem presentes no soquete. Funcionalidades, não vai esperar. Na verdade, não há dados, eles retornarão imediatamente. É quando você faz, seu soquete é o modo sem bloqueio. Nesse caso, ele retornará imediatamente sem esperar que um par seja concluído. Este é o nosso modo de molde e sem bloqueio. Então você entendeu sobre o modo de bloqueio e o modo sem bloqueio. Agora vamos ver como obter a comunicação de servidor de várias linhas. E é assim que abordaremos todos e tudo o que declaramos no primeiro slide. Como obter a comunicação com o servidor multinuvem. Então o que nós, o que estamos fazendo, assim como sabemos, a maneira simples de lidar com a multiplicação de vários clientes é simplesmente gerar um novo truque. Mas todo novo cliente conectado ao servidor, já que sabemos que há apenas um servidor e depois em vários clientes. Então, o médico com um único servidor, que pode ser qualquer número de clientes. Portanto, no caso dos múltiplos clientes, a maneira simples de fazer a comunicação entre o servidor e o cliente é o que fazemos. Criamos thread para cada novo cliente conectado. Então, qual pode o problema com essa abordagem? Criar um novo tópico para cada cliente que tenta se conectar conosco e somos um dos problemas pode ocorrer. Vamos ver os detalhes na célula de urina. Essa abordagem não é recomendada devido à decisão abaixo das marchas em execução. A primeira desvantagem de criar o thread para cada restrição de cliente para se conectar ao servidor é, em primeiro lugar, sabemos no caso das ameaças que elas são difíceis de codificar, também como depuração, e às vezes eles têm resultados imprevisíveis quando tudo isso é sobre a ameaça. Então esse problema, ou o que se dirige a alcançar contextos. Então, o que isso significa? Isso significa que suponha que Você esteja lidando com um tópico e agora você tem lidar com outro tópico naquele momento. Então você terá que mudar de um thread para outro thread encontrar x, então há uma sobrecarga. Portanto, há um tempo necessário para mudar de um segmento para outro. Portanto, essa é a segunda desvantagem de usar a grade. O pensamento ou desvantagens é que ele não é escalável para um grande número de plantas ou se houver algum número de linhas, na verdade, nesse caso, isso vai, isso não é um maneira visível o suficiente para criar um encadeamento para cada cliente para que ele tenha uma comunicação entre este oval. E também o problema vem no impasse. Deadlock significa sempre que vários querem a mesma perda, muitas ameaças múltiplas querem o mesmo bloqueio ao mesmo tempo. E esse é o impasse ocorre. Então isso está ligado, essas são as desvantagens com o uso dos fios em cada plano que se comunica com a parede celular. Portanto, essa é a razão pela qual conhecemos nosso objetivo para essa abordagem de criar um tópico para cada cliente. Qual é a próxima coisa que podemos realmente tentar superar com esse tópico? Embora essas desvantagens operem o thread, a próxima coisa é, não selecione con, para fazer chamadas selecionadas. E o que é esse objetivo selecionado? Qual é o propósito e o uso? Vamos ver tudo em detalhes sobre a chamada selecionada. E depois você verá como selecionar a chamada Monica. E também veremos o programa e executamos n. Então melhor maneira de superar com este problema de discussão de filme é por colegas selecionar a função. Então, vamos ver como o uso da função select. Portanto, temos que selecionar a função de um conjunto de soquetes que queremos ler, dependendo do parâmetro de tempo limite deles, todos. Quando você terminar quase imediatamente com um conjunto desses soquetes está pronto para ser lido. O que isso significa? O que essa definição significa? O que você vai fazer? Portanto, há uma função de seleção. Você chamará uma função select. Então, explicarei detalhadamente como fazer uso dessa função select estará passando a configuração, os soquetes dos quais não seremos lidos. Portanto, este é um no exame que, portanto, suponha que você queira executar a operação de leitura em diferentes soquetes diferentes. Então você está tendo a lista realmente modelar soquetes sobre o que todos os soquetes estão lá em que você precisa executar a operação de leitura em ambos os soquetes. Então você passará a lista desses soquetes e não selecionará a função. Além disso, você também mencionará o tempo limite. Sobre o que esse tempo limite? Esta demonstração é como, suponha que você descreva algum tempo nesse tempo limite. Dessa vez, na verdade, a função select será de fábrica para o nosso n irá monitorar todos os soquetes que você deu no monitor de função de seleção. Até esse tempo. Se entre isso não obteve o período de tempo. soquetes receberam alguns dados em qualquer dia, recebem em qualquer um desses soquetes que você deu nesta função de seleção. Em seguida, ele retornará, na verdade com todos os soquetes que você mencionou, que está tendo seus dados para serem lidos. Portanto, esta demonstração é dada aqui até que o clima de trabalhos de casa precise esperar. Suponha que você esteja dando o tempo limite de trinta segundos. Você está dando, dando esse soquete na árvore de análise de função selecionada. Portanto, todos os tipos de soquetes em que você deseja executar uma operação de leitura e você deu o tempo limite segundos. Então, dentro desses segundos, serão 40 segundos, no máximo trinta segundos. E ele verá, na verdade, qual desses soquetes está recebendo qualquer período de tempo de patente de data. Mais dados são recebidos dentro desse quadro e, em seguida, eles retornarão. Esse tempo limite ocorre. Mas, entre esse tempo limite, antes de 30 segundos em si, alguns dos soquetes receberam dados, então ele retornará na verdade quando ocorrer o tempo limite, ele retornará com todos esses soquetes, que é pesado nesse soquete para que ele possa ser lido. Então, espero que você tenha entendido o que estou explicando. Uma vez que ele retorna com todos os soquetes que estão tendo os dados presentes no soquete. Nesse caso, você pode executar imediatamente uma ação. Você pode executar imediatamente uma operação de leitura, pois sabemos que os dados estão disponíveis nesse soquete para que o tempo você não precise ler. Esse é o propósito da função select. É assim que alcançamos a alma. E o detalhe sobre essa função de seleção Omics está aqui também. É assim que fazer os detalhes como usá-lo. O que todos os argumentos esta função select está tendo. Até agora, é difícil. Tudo o que temos VI em oposição a carregar os três conjuntos. Neste uso, expliquei apenas sobre o uso real do select é fim de semana passar os três que podemos carregar os três conjuntos. Um conjunto será para o outro conjunto será para a direita, e a análise será para a próxima seção. Então, o que é esse conjunto? Esses são os conjuntos, o que significa que esses são os descritores de arquivos. Você pode simplesmente dizer que os conjuntos significam a lista de descritores mais fortes. Você pode limpar a lista de descritores em que você precisa executar a operação de leitura. Quem pode criar a lista dos descritores que você teve e você precisa executar a operação correta e a lista de descritores para a exceção. Então, portanto, quarto. Suponha que você tenha mencionado cinco soquetes na verdade lista de descritores nos descritores de arquivo quando você precisa executar a operação de leitura, você precisa monitorar a operação de leitura que esteve em qualquer um desses soquetes de tubulação, qualquer um deles tem que enganar qualquer um deles ordenança em qualquer um deles recebeu a data nele para que você possa executar. Você não prega como ler apenas os líderes descritos neste problema. Porque você mencionou que você precisa executar a operação correta no soquete. E outro descritor de peça definido para a exceção. Se você passar esses três conjuntos em sua função select, veremos no próprio programa, isso fará com que você usá-los. Esta é apenas uma descrição antes de iniciar o programa, escrever o programa e executá-lo, estamos apenas procurando, na verdade, várias coisas são necessárias para você chamar a função select. E é um fator muito importante para alcançar uma comunicação de servidor de várias linhas modo a um dia decidido mais amplo. Portanto, criar um fio para cada conexão com o cliente atuará sobre a alma. Essas são as três coisas que são redefinições necessárias. A próxima coisa que está mencionando sobre o Select, ele testará esses soquetes, é o que for. Então, sobre soquetes, você recebe esses três conjuntos. Ele dirá aos soquetes e informará qual deles está pronto para essas operações. Isso significa que todos os conjuntos que você mencionou lhe dão auditoria à sua função Select. Eles lêem, escrevem uma exceção. Então você está dando a lista de descritores de soquete em que deseja executar essas operações e também está dando um tempo limite. Ele verá que morrer dentro desse tempo limite, se algum desses soquetes estiver pronto para operação de leitura e os soquetes que você mencionou no conjunto de descritores estiverem prontos para, certo? Está pronto para exceções. Então, finalmente, a função select, voltaremos com esses soquetes. Estou pronto para realizar essas operações. Espero que você tenha entendido esse ponto e isso o deixará mais claro quando começarmos a escrever um programa, então a próxima coisa sobre a função select é e essa informação, podemos então processar o soquetes que estão prontos sim, e ignoram o resto do tempo. O que isso significa? Isso significa que C, você está analisando alguma lista de soquete dos descritores. descritor de soquete é executar a operação de leitura, digamos a ordem phi do soquete. Os descritores de soquete que você está analisando, operação correta e você não está passando nada para a exceção, suponha que você esteja passando nulo. Nesse caso. Você também está mencionando que estou lá fora em um minuto. Dentro desse minuto, todos os descritores estão prontos. Quando falo sobre pronto, isso significa que esta é uma operação de leitura. Então, obviamente, deve haver dados no soquete. O soquete, estaremos prontos para lê-lo. O tempo limite que você mencionou, na verdade, o lead time que ele monitorará, na verdade, todos esses conjuntos de descritores. Estou pronto para a operação de leitura. Já temos uma operação de gravação, então ela não fez cada uma delas e retornará informações na verdade. Então, falamos sobre o mesmo, então significamos que informações podemos processar as informações dos soquetes, qual deles está pronto para ler, escrever e tudo termina em ambas as casas a operação deles ler finalmente fora escrevendo finalmente, então é isso que está dizendo. Processe aqueles que já e ignore isso. Vamos desenhar e temos que ignorar o resto já está feito. Ao processar seletivamente, os soquetes nem sequer são bloqueados. Então, neste caso, não seremos bloqueados porque ele selecionou seletivamente apenas os soquetes, que já são a forma polar. Então, temos que esperar apenas o tempo que você mencionou no tempo limite em paz da função de seleção, veremos os detalhes até esse momento só você precisa esperar, na verdade, e o que quer que ele dê aos descritores que você já precisa executar a ação sobre isso. Você tem que ir para ele Na verdade e evitar usar o segmento, que é uma ótima sobrecarga usando o fio que vimos no slide anterior. Agora, este é um nó para você, então esse é um parâmetro de tempo limite. Portanto, isso é sobre a função de seleção há um demoed, mas no caso de a função select por isso demoed por diâmetro é necessária e selecione a função. É necessário para controlar a quantidade de tempo para ler para a ação. Soquete de suporte pronto para ser lido. Isso significa que, pelo modo STI, por diâmetro é necessário na função select. Será apenas, é necessário para que você tenha que esperar esse período de tempo. Os descritores que você forneceu seu conjunto de descritores, conjunto de descritores que você fornece, você tem que esperar até o tempo limite que você não mencionou e você percebeu se um deles é pronto. Até esse momento você tem, há uma razão para ficar o modo tão importante. Então, é assim que você controla na verdade, quanto tempo você precisa esperar depois que esse tempo de espera chegar. Então, o que ele retornará o trombo da lista. O roteiro sabe qual já quadrático, qual já li e todos esses detalhes. Agora, esta é a definição real da função select, como usá-los. Então isso é, esta é apenas uma declaração aqui que você pode ver int select e esses argumentos estão presentes aqui. Então, qual é o primeiro e um humano? Você pode ver no meio que é um tipo de dados inteiro n MDS. Aqui descrevi os detalhes que veremos aqui. Como eu lhe disse, frases descritivas são descritivas definidas para. Isso é conjunto FD. Este é o tipo de dados realmente apontado conjunto vazio. Este descritivo satisfaz para fins de leitura. Este conjunto descritivo é para fins de escrita, e esse conjunto descritivo é uma exceção, propósito. E este é o valor final do tempo limite que você precisa devolver a quantidade de tempo que ele precisa ler e, de fato, proteger quais dos descritores desses conjuntos realmente são pronto para a operação. Agora vamos ver um por um sobre esses argumentos que você precisa passar. detalhes do argumento de dados estão lá. Então o primeiro é int e MDS, que é este, MPS. Então, isso é o que, na verdade, este é o descritor de arquivo de número mais alto em qualquer desses três conjuntos mais 11 valor que ele terá. Então isso é antes de tudo, já que estou explicando a você, o sistema operacional Linux, porque os seletores usados para o Linux, também é usado para o botão Windows. No caso do Linux, na verdade, teremos esse argumento extra que é o NDF e o NMDA é atendido. Significa, na verdade, o valor que ele terá. Como você precisava ter essa lista desses descritores para ler lista de descritores para TI. E vamos aumentar esse script primeira exceção. Então, neste, teremos um valor mais alto mais um. Eles vão te dar isso. E o NMDA é descritor de arquivo. Então, o que está dizendo, o maior número do descritor de arquivo em qualquer um dos três conjuntos mais marca. A coisa usual que você só pode passar tamanho do conjunto FD como o valor desse argumento na verdade, porque essa macro lhe dará todo o valor que é um grande número de palavras descritivas mais um. Isso é sobre isso, como eu disse, isso é para o sistema operacional Linux, esse argumento extra está lá. Mas, no caso das janelas, esse parâmetro é ignorado. Isso é n HDFN NSAIDS. Por que é ignorado? Porque como esses são os conjuntos descritivos, o conjunto que é o tipo de dados sublinhado FDI seg. Então, no caso das janelas, este FD se configurou, depois metade dos soquetes, bem como o número de soquetes. Na verdade. Portanto, como esse conjunto vazio no caso do Windows está tendo os detalhes sobre o número dos soquetes e, portanto, esse argumento que não será tão no caso deles naqueles é que apenas no Linux. Porque no caso do Linux, somente esse valor é mantido por causa do conjunto vazio na verdade, que veremos o que faz isso pelo menos, e esse é o tipo de dados do conjunto descritivo. Isso não terá detalhes sobre o número de soquetes. No caso do Linux que apenas selecionará função está tendo esse detalhe aqui. Mas, no caso das janelas, podemos ignorar isso. O humano é ignorado porque o número de soquetes é descrito em cada conjunto, na verdade. Então, esse detalhe, veremos uma cabeça. Isso é uma defesa. Você lembraria que, no caso do Linux, este é o argumento, argumento extra, mas a janela MBSR, isso não está presente. Quero dizer, de volta a esse argumento. Então acabamos com o primeiro argumento. Vamos ver o outro humano. Para humano faz cada ponteiro definido, o ponteiro para o centro dos soquetes a ser verificado quanto à legibilidade. Mas estou vendo uma opção em questão. Portanto, lembre-se sempre, não é necessário que você tenha que passar esse valor. Além disso, você tem que passar esse valor, você tem que passar por este local para que ele possa, não é compulsão na verdade. Portanto, isso pode acontecer, na verdade, você está tendo com esse valor que é perdido neste script que atendeu e você precisa monitorar a operação de leitura. Esse valor pode estar lá, mas isso não é realmente. E isso também é derretido e isso pode acontecer na verdade. Então, mesmo isso pode ser nulo na verdade. E você pode ter o valor do número de descritores quando você tem pessoas acender a operação , isso será nulo. Essas duas coisas podem estar lá e este rosa quente e, portanto, são as mesmas. Isso é uma coisa opcional. Um deles deve ser definido na verdade. Você não pode colocá-los como nenhum. Então, essa é a coisa. Isto é o que um opcional apontou para um conjunto de soquetes a serem verificados para AWT, pois eu disse que a mesma coisa assim é o que eu acho bonecos e ponteiro gordo opcional para um conjunto de soquetes podem ser verificados corpo. Que lista dos soquetes que você deseja verificar, certo? A habilidade novamente, exceção, eu sei que 10 foram tomadas de configuração para serem verificadas em condições excepcionais. Último argumento que é o tempo limite. Essa é essa estrutura, o ponteiro para ela, que é o tempo o. Qual é o propósito dela? Como eu disse, a taxa máxima ou nula, ou bloqueio ou paciente. No entanto, ele está dizendo, então suponha quanto tempo você quer esperar, na verdade, a função select, eu tenho que esperar até esse momento. Ele aguardará, na verdade, e monitorará os descritores. Esses descritores que você mencionou, você monitora para que o evento ocorra. Ou seja, se for, monitoraremos a operação de leitura se for uma porta de monitor ideal, certo? Se for suportado, monitore pipoca. Mas até o momento em que você mencionou em seu tempo limite, uma vez concluído esse tempo limite, ele retornará se não houver até esse momento. Se não houver descritores, conheça os soquetes prontos para disfunção anual e é demoed ou o que ele retornará. Valor nulo. Ele retornará dizendo que nenhum deles está pronto, e então ele retornará. Isso é sobre isso. Mas se você passar, se você estiver diretamente, não dê nenhum valor no caso do tempo limite que você acabou de mencionar como nulo. Isso significa que está dizendo que será simplesmente continuar esperando se você passar este menu como analítico, basta ler qualquer um desses descritores, esses soquetes estão prontos para qualquer um dos funções. Assim, também pode ser recuo, tempo indefinido, tempo infinito se não houver dados presentes no soquete, nada para escrever no soquete, nada, nenhuma dessas coisas. Então, ele continuará lendo e lendo se você passar esse valor como nulo, mas se você passar algum valor e esse tempo, até esse momento ele voltará para o e então ele terá o tempo limite. Mas se você passar como nulo, ele continuará esperando. Então, isso é o que está dizendo aqui. 20. Sessão de soquete12 de bloqueios de bolsos em MultiClientServer selecione 2o de segunda metade: Quais são os detalhes sobre a função select e o que ela retorna? O mesmo que é, o que ele retorna? Então, um tom auditivo. O que isso significa? O número total de soquetes que estão prontos. Então, se ele retornar uma auditoria maior que uma, isso significa quantos descritores de futebol estão prontos? Quantos números de soquetes estão prontos? Na verdade, isso dará esse valor. Se ele retornar 0, isso significa que o limite de tempo expirou e até esse momento não há soquetes para os quais estamos prontos. Ele retorna menos um. Isso significa uma edição, um cartão deslize algumas Pranchetas Editar e, em seguida, ele retornará menos um. Então, essas são as coisas que ele pode retornar e isso é uma possibilidade, mas cada uma delas, consequentemente, você pode lhe dizer. Você pode verificar na janela, no Windows, no soquete de vento, esse valor de retorno será soquete. Use a função aplicável para identificar o erro real. No caso do Windows, este será desse tipo de soquete e do erro quadrado, isso apenas para distinguir entre, este é aquele em que estou descrevendo e apenas distingui quando não Windows Eu escrevi extraí-lo no caso de todas as janelas deste editor estarem mortas. Além disso, você pode chamar esta função w e dizer Obter último erro para obter os detalhes sobre a edição, ele retorna um erro. Ok, então esse órgão entendeu editor no Windows. Agora, para falar sobre os detalhes sobre isso, cada sublinhado segundo, aqui estamos usando completamente uma predefinição. Você pode ver aqui esta visualização WAS, é o ponteiro do tipo de dados para o conjunto de sublinhado do MPI este escritor VS também o tipo de dados apontado vai sublinhar conjunto também um ponteiro de exceção para a obesidade. Então, o que isso é sublinhado seg, como faço nos descritores de arquivos da área de trabalho. Vamos ver detalhes sobre isso. Agora. No caso do Unix, no caso dos minutos definidos FD, os outros redemoinhos binários. Isso é no caso do vento, música de vento. Isso significa que, no caso de janelas, esses soquetes, no caso das janelas, esse conjunto vazio significa as outras estruturas. No caso do Windows, o pai conterá a área dos soquetes, bem como a contagem do número dos soquetes, como eu disse nos slides anteriores na verdade, que no caso de você chamar a função select, o primeiro argumento é sobre este. Nsaids em que você não passará no caso das janelas, isso não é necessário porque este apenas mencionou o número dos soquetes uma vez que não é necessário no caso de argumento descartado do Windows porque o porque este conjunto FD, que é dito que teremos, teremos a estrutura que contém a área dos soquetes, bem como ele conterá a contagem do número de soquetes. Portanto, esse parâmetro que é o número de soquetes já está lá neste conjunto vazio no caso de os esforços do Windows não serem necessários. Quando você chama essa função de seleção. No caso do Linux, esses são os conjuntos serão simplesmente um arrays binários. Ou seja, no caso do Windows. Será a estrutura que contém soquetes aéreos, bem como eles contêm a contagem do número de soquetes e papai. Coisas boas quando apresentamos. Esta é a diferença entre o unix e as janelas no caso de Bordeaux e reset. E isso é o que eu mencionei aqui. Esse contador valoriza esse motivo vibe em salt ignora o primeiro parâmetro deste select, que eu disse que, no caso do soquete Devin, o primeiro argumento, que é que o select é ignorado, o não requer porque você está em uma redefinição. É mencionado sob profundamente armazenado neles ele disse, o que eu expliquei, você sabe, detalhes. Esta linha, essas três linhas Estados se empilham. Então, agora vamos ver mais detalhes desses conjuntos vazios. Essas são as macros que eu costumava trabalhar com esses conjuntos. Então eu estou explicando todas essas coisas, na verdade porque eu realmente não estava escrevendo o programa usando a função select, que é muito importante como eu disse, que para superar com este atrial multithread, preferimos usar o select. Não precisamos esperar por muito tempo pelo tempo limite. Muitos temos que ler e isso é muito visível porque vai atender a hora deles. E você pode entender por que a definição diz, já que usaremos todas essas coisas em nosso programa, o núcleo escrevendo um programa. Estou explicando todos e cada argumento neste slide em si. Então, a próxima coisa quando começarmos a escrever o programa, será muito Z. E estes não são o equilíbrio da lua antes de começar a prova agora. Estes são os micróbios associados aos conjuntos vazios. Essas macro que você encontrará quando escrever um programa, veremos que estou usando todas essas macros. Então você saberá se estou explicando detalhes de urina porque somos humanos emitidos, faça uso dele chamando a função select. O que esse tamanho de conjunto vazio que você usará com eles é redefinido. É o valor dessa macro é o número máximo descritores de arquivo que o objeto de conjunto vazio pode extrair no farming, fornecendo as informações sobre isso. Como eu disse aqui em si, que Este argumento falso em selecionar o que será. Será o número máximo de descritores desses três descritores, qual deles está tendo valor máximo mais um? Este tamanho conjunto FD. Isso lhe dará completamente os detalhes sobre este. Isso é o quê? Ele fornecerá completamente um número máximo de descritores de arquivo que o objeto de conjunto vazio pode colocar. Isso é o que sobre a macro fala em termos de conjuntos vazios. Que mais macro você pode ver relação a um dos conjuntos F D sublinhado 0. Então isso significa o quê? Você está passando este conjunto vazio. Essa macro inicializa os arquivos um conjunto descritivo, dois conjuntos vazios. Então, você simplesmente inicializará seu conjunto descritivo para 0 e, portanto, você usará essa macro FDA sublinhado 0 e E. Estas são as diferentes macros dentro dos conjuntos que são sublinhados do conjunto B vazio. Vamos sublinhar CLR F, D. Ele configura um pós-operatório, todas essas macros que estão lá. A finalidade deste conjunto vazio é que você está adicionando esta lista de descritor de arquivo distribuída. Como sabemos que cada conjunto de ponteiros definidos, isso significa que ele está tendo a lista de descritores, descritores de futebol. E você quer chamar essa função e você está desenhando, você quer adicionar isso, poderia ter obtido esse descritor definido. Então, nesse trimestre, você chamará M-Pesa. Para adicionar este descritor investiria lista nesses descritores. Concentre-se nisso e no CLR, isso significa que você tem que limpar realmente esse descritivo que você mencionou. Você precisa simplesmente remover esse descritor, remover esse descritor de classificação desse script. Eu disse que essa é uma razão pela qual você está chamando o sublinhado do MPI que o código CLR é enviado. Isso significa que você precisa verificar se esse descritivo, que você não mencionou, é que não existe nesta lista de conjuntos de descritores neste descritivo saber o desumano final do select this timeout este, esta função de seleção. Então, vamos ver isso. Essa seleção aguardará o tempo especificado nos detalhes para chegar e, em seguida, finalmente desistirá e retornará com o status do soquete. Como eu lhe disse isso, ele aguardará o tempo limite. Você mencionou peso e monitor. Na verdade, se você deu o script vai para monitor para leitura ou para alguns descritores para monitoramento do pensamento. Pode ser um post. Ele verificará todos os descritores que são fornecedores do rádio ou não até o momento em que você mencionou nesta demonstração. Caso contrário, ele se comportará de acordo. Então, aqui estão dois estados que agora observam que a porta de seleção retorna antes do tempo limite. Dados incorporados, são apenas envergonhados sem dados do que demorarão durante todo o tempo antes de retornar. espécie de ver que, uma vez que eles retornem os dados, mesmo que você esteja mencionando que estou fora de 30 segundos. Mas se o select está ficando bom, alguns dos soquetes que estão prontos, na verdade , nesse caso, não esperarão o tempo todo. Oh, eu a indústria mencionou que pode retornar antes desse tempo expirar. Mas se não houver dados, não há atividade em nenhum soquete. Ele lerá o valor de tempo limite completo que para eles, e eles não precisam de Estados. Agora, se você disse que o tempo limite é 0, se você lhes der valor para ser 0. Nesse caso, esse select retornará imediatamente com esses dados. Se você mencionou os zeros em seu valor de camuflagem na função select, o último argumento que exige 0, e isso significa que você não precisa esperar, você não quer esperar. Você precisa simplesmente retornar imediatamente. Então, ele simplesmente verificará na verdade Em simplesmente chamar a função de seleção que ele prossegue. Ritual. Os descritores estão prontos se não realmente não esperarem, na verdade simplesmente não o fizeram imediatamente. Isso significa que se você enviar o parâmetro demoed para o nulo, nesse caso, ele simplesmente continuará aguardando até que ele não encontre nenhum evento B ocorrido. Nesse caso, isso não levaria pela independência, mas eu também sou, pode ser, pode esperar por tempo infinito se não houver, nada, nenhuma atividade na verdade, esses dados de nó. Se você quiser adicionar predefinições de script para leitura, se quiser escrever, não há nada que você não possa estar certo no soquete. Ele continuará lendo e lendo. Este é o local como um nulo. E se você estender a demonstração será mililitros de tempo diferente de zero. Se você der algum valor positivo, valor zero, então o Select que não é 0 valor. Então, nesse caso, ele aguardará o tempo que você mencionou e estará bloqueando a correspondência da morte entre o tempo limite acabar, ele retornará. Isso é o que acontece com o parâmetro timeout no caso da função de seleção de pontos. Agora, o que esse tempo limite realmente tem em detalhes. Eu mencionei que também o tempo limite terá essas coisas em segundos e microssegundos. É assim que usá-los. Então, a última coisa que não é o soquete sem bloqueio para alcançá-los diminui a comunicação do servidor. Em vez de usar a função select, podemos fazer o soquete como um não-bloqueio seguindo a função diferente. O que faz essa alma, como eu disse que existem dois modos para o bloqueio de soquete, bem como o não bloqueio. Então, espero que você tenha entendido sobre o bloqueio significa que ele vai ler realmente dizer que o evento estará ocorrendo. Por exemplo, vimos no caso da função vermelha, que se estivermos chamando a função de leitura, se o soquete como um soquete de bloqueio, e se adicionarmos comer realmente nesse caso, se ele não receber o dados, ele simplesmente lerá. Os dados estão lá no soquete. Então, nesse caso, todo o seu programa ficará preso porque você está chamando uma função e ainda está aguardando os dados cheguem ao soquete. O tempo de espera que seu programa será interrompido. Falando, parou. Na verdade, haverá visto nesta sessão que o salão de pôsteres, para alcançar a comunicação do segmento de linha PICC, criamos um encadeamento para cada plano que se conecta realmente ao servidor. Isso será ou o que dói por causa das desvantagens. Deveria ter visto essa placa, para evitar essas desvantagens, não estamos preferindo usar ameaça. Estamos chamando a função select. Você viu qual é o propósito da função select. Imediatamente dê a lista de descritores que queremos. Na verdade, monitore realmente colocar o valor do tempo limite e ele retornará realmente com os descritores que estão prontos, qualquer que seja a leitura do departamento que esteja pronta para escrever todos esses descritores retornos foram soquetes selecionados, ele retornará, na verdade, que estão prontos para serem processados. É assim que ele não lerá realmente por um longo tempo. Então é assim que você está tendo um controle sobre o banho. Este não é um que realmente usamos o select. Outra maneira é você perder, eu estou fazendo com que o soquete seja sem bloqueio, então isso é outra coisa para alcançá-los e diminuir em várias comunicações e os detalhes de como usar o soquete sem bloqueio. Qual é o propósito do soquete sem bloqueio? O que acontecerá e como conseguir este mês recusar a comunicação do servidor usando o soquete sem bloqueio que veremos em outra sessão. Você também verá o programa. Então agora eu expliquei como os detalhes sobre a função select, como fazer uso dela. E já que vamos escrever um programa e executá-lo. Portanto, esse conhecimento da função de seleção, bem como quais argumentos são necessários, detalhes sobre isso são necessários, há uma razão para ter carbono aqui. Também veremos, então queremos ver o que acontece com o soquete sem bloqueio, como podemos alcançar esta segunda-feira a comunicação cliente-servidor. E também escreveremos o programa para isso também, Vamos resumir o que todos os tópicos realmente, vamos ver quais nossos tópicos abordaremos na próxima sessão. Então, antes de tudo, você estará escrevendo o programa e executando-o usando a função select. Então, este enquadramento, esta sessão é muito importante para você, porque na próxima sessão vou explicar que você estará escrevendo um programa no Linux e nós o executaremos usando a função select. Desde mais trabalho, expliquei nesta sessão teria sido útil antigamente. Você deve ver como alguém recusa. Várias comunicações são alcançadas, vamos executá-la e veremos essa comunicação acontecendo no Linux na próxima sessão. A próxima sessão será muito fácil para você. Se você passou por esta sessão completa usando a função select. Então, a próxima coisa depois disso, estaremos cobrindo o que faz o soquete sem bloqueio, como você pode obter declínio na comunicação do servidor. Em seguida, também veremos a diferença entre essas duas abordagens, que se aproxima das abordagens para alcançar a comunicação de servidor multilinha. Essa é a diferença entre a função select na qual mostrei agora. A diferença entre o soquete sem bloqueio, porque essa também é a outra maneira de alcançar minha comunicação com o servidor de declínio. Uma vez que eu completar este soquete sem bloqueio, veremos você sobre a diferença entre eles e qual deles devemos preferir. Veja qual deles é, qual deles usar quando selecionar um soquete sem bloqueio que todos os líderes na próxima sessão. Como fazer um soquete não bloqueia todos os detalhes e um programa e escreve um programa e executado usando soquete sem bloqueio para obter comunicação multinuvem e servidor. Nos próximos soviéticos ver na solvência o programa usando o não-bloqueio, tornando o soquete não bloqueando e executando-o no Linux em, Obrigado, estaremos cobrindo. Então, espero que você tenha entendido a sessão completa em que vimos todos esses detalhes realmente sobre os soquetes de bloqueio e sem bloqueio que você salvou para selecionar e como alcançar eles. Comunicação do servidor Anticlines usando selecionar todas as coisas que adicionamos através um v gobbled realmente a próxima sessão, que significa ver o programa usando o select e ver como alcançar esta multi-linha comunicação do servidor, escrevendo o programa e executando-o usando a linguagem C. E obrigado por agora. Obrigado muitos amigos. 21. Sessão13 uso de programa e execução de UsingSelect UsingSelect 1o de: Olá amigos. Hoje vamos escrever o programa de soquete usando a função select para alcançar a comunicação do servidor de linhas magnéticas, bem como vamos executá-lo no Linux usando a linguagem C. Espero que você tenha passado pela sessão anterior e eu expliquei os detalhes, a necessidade de usar o select para obter a comunicação multicliente-servidor. Vimos duas conquistas, a Comunicação Cliente-Servidor neste primeiro lugar, ela pode seguir a abordagem que está criando o thread chamado cada um dos clientes conectados a ele, porém, existem vários clientes, em seguida vários threads, podemos vê-lo. Mas qual foi o problema que discutimos na sessão anterior? Existem diferentes, vários desvantajosos usando a criação do thread para cada cliente que se conecta ao cortado. Então eu cobri todos os pontos, todas as desvantagens e a sessão de áudio. Não é recomendado criar o thread para cada cliente que tenta se conectar ao servidor. E essa é a razão pela qual não estamos indo para a abordagem para criar um tópico. Em vez disso, usaremos a função select. Então, os detalhes da função de seleção estão. A função select é necessária. O que é função select? Como chamar a função select? Que todos os argumentos você precisa passar na função select. Todos os detalhes que eu forneci na sessão anterior, e é muito importante para que a realização decline a comunicação cortada. Então, vamos ver Apenas uma breve descrição do select aqui, e vamos começar a escrever o programa bem como executá-lo no Linux. Apenas falando sobre a função select. Então, qual é o propósito da função select? É monitorar o número de soquetes descritor de soquetes que você fornece neste funcionamento de seleção. Se você quiser monitorar os soquetes para fins de leitura, se você quiser dizer a alguém que os soquetes para, penso eu propósito, quem pode dar toda a lista desses descritores nesta função de seleção. E, portanto, esta primeira linha diz a mesma coisa. Isso é que temos que carregar redefinições. Isto é lido, escreva uma exceção com os soquetes que queríamos sócrates que você deseja testar para todas essas funcionalidades que podemos dar esta leitura será a lista definida do futebol descritores que você pode dar comprados. Eu acho, legibilidade. Você pode fornecer uma lista do descritor de soquete para teste. E então haverá a exceção descritiva de falha seg. Então, todas as coisas que eu expliquei na sessão anterior, esta é apenas uma breve descrição. Então, o quê? Esta função de seleção, então retornaremos. Então, aqui nós fornecemos todo tipo de parâmetro de tempo limite para a função select. O que é esse tempo limite por diâmetro que descrevi é o prazo dentro do qual você precisa testar todos os soquetes. Temos que testar quais dos soquetes estão prontos para legibilidade. Quais dos soquetes estão prontos? Estabilidade de um quarto de polegada. Portanto, todos esses soquetes, na verdade, dentro de seu prazo , qual deles está pronto, ele retornará a lista desses soquetes se o tempo limite expirar e sem soquetes, legibilidade ou repetibilidade. Portanto, não escreverá nenhum dos soquetes. Portanto, isso é tudo sobre o uso da função select. E se você tiver que passar pelos detalhes para passar pela sessão anterior, você entenderá tudo sobre a função select. Então, vamos começar a escrever o programa usando este select, bem como Angelinos executados usando a linguagem C. Também amigos, esta sessão que estou dando a vocês é o sistema operacional Windows. Para escrever o programa e executar no sistema operacional Linux, eu instalei a caixa Oracle VM. Você também pode fazer a mesma coisa. É muito fácil baixá-lo e instalá-lo para que você também possa tentar diferentes sistemas operacionais. E se você estiver tendo o sistema operacional Linux, você pode escrever diretamente o programa comigo e você pode executar em seguida. Muitas vezes, porém, embarcamos fendas que abriram o Linux. Vamos iniciar o sistema operacional das unidades e o programa de rádio. Este é o meu terminal do Linux. Eu direi a você ciente dos comandos básicos quando você começar a escrever o programa no Linux. Esta é a separação em que eu tenho na pasta inicial, criei este fólio que é a programação de soquete Linux usando select. Aqui, eu já escrevi isso. Deixe-me excluir a saída aqui. Estive na sua frente e depois veremos, deixe-me abrir este arquivo. Deixe-nos. Soquete vários, vários clientes.read. Então eu já escrevi este programa. Deixe-me abrir isso e eu vou fixar isso. Em vez de escrever cada uma e 98 instruções de alinhamento da estocagem, demissão leva muito tempo. Então eu já escrevi o programa e depois explicarei instruções linha a linha que são usadas. A maioria das coisas que abordarei neste programa que já abordei na minha sessão anterior, expliquei, sabia como usar a função select e isso é muito útil. Se você passar por essa sessão anterior, esta sessão será muito. Então. Eu recomendo que você vá para a sessão anterior antes de iniciar Esta sessão. Inicie o servidor. Então este é um relatório da barra lateral tentado para a sociedade. Uma vez que eu explique as instruções de cada linha, então a executaremos. Assim que executarmos o solucionador, solver será lançado. Em seguida, lançaremos o cliente a partir de outro terminal. Assim que iniciarmos um cliente que tentará se conectar ao servidor, o cliente enviará a conexão para o servidor. O servidor aceitará essa conexão e enviará uma mensagem de confirmação. Com a aplicação. Essa mensagem será impressa no console, no cliente. Você verá como a calçada envia essa mensagem para o cliente. Então esse vermelho é a comunicação entre o servidor e o cliente. A segunda coisa que veremos neste programa que seja o que for que digitarmos, a mensagem, o cliente, seja ecoado de volta para o próprio cliente usando a função select. Então, se eu digitar alguma mensagem, diga olá, em, essa mensagem aparecerá, aparecerá no console do cliente novamente dizendo olá. Tudo isso está usando a função select. Veremos como a função select funciona na verdade. E então, se tentarmos lançar o segundo cliente, se ecoarmos, esta é outra mensagem sobre isso, nessa linha. Segundo cliente, ele será exibido na própria segunda linha. Então, todas essas coisas estaremos cobrindo dessa maneira. Também veremos como o servidor fala com o cliente e se como podemos ecoar a mensagem em declínio em si mesmo, mesmo plano em si, seja qual for a mensagem que demos ao cliente, essa mensagem estarão aparecendo na linha vermelha em coisas que abordaremos nesta sessão. Neste programa. Vou explicar o que todas as coisas, o que todas as instruções são necessárias para conseguir isso. Então, vamos começar o conjunto dos arquivos de cabeçalho que você precisa falsar. Não declare antes de iniciar o programa. Espero que sim. Você também passou pelas sessões de configuração anteriores que eu abordei para programação de soquete. Então você sabe, o B6, o soquete. Como o servidor se comunica com o cliente? Quais são os fungos, na verdade, como o servidor se ligará à porta e como o cliente se conectará à mesma porta e como essa comunicação é feita. Todos os detalhes que expliquei o empilhamento da sessão neste curso. Eu vou te dizer como você deve ser uma sequência passo a passo sábio. Vamos começar. O Desde que esta é uma linguagem C, mas a execução do seu programa sempre começa a partir da função média. Portanto, esta é a nossa principal função que eu fiz o código, essa função de seleção até agora, suporte. Esta é a função principal. Estas são as declarações que eu fiz. Então, vamos ver um por um. Você pode ver que essa variável está lá que eu inicializei. Vemos todas essas coisas que é necessário? Então este é o, isto é, essas são as variáveis que são o soquete mestre. Esta meia sublinhada da linha ADD LN. Em seguida, você pode ver uma matriz no soquete do cliente que está tendo n elementos nele. Esta variável max Klein, que está tendo, que é inicializada com o valor dez. Então todas essas variáveis que são, que eu declarei. Vou explicar qual é o propósito de cada variável meses começamos com a explicação de instrução linha a linha. Vou explicar qual é o propósito de todas e todas as habilidades da mídia declaradas? Estimadores de sublinhado máximo variável do tipo de dados int. Isso é o máximo ou pode ter os descritores de arquivos que estão mortos. Na sessão anterior. Além disso, eu mencionei isso sobre os detalhes do sublinhado Avy sec. Então, novamente, a escola disse, na verdade, você sabe que existem três conjuntos de células sublinhadas do IED, isto é, para leitura, escrita e exceção. Então, qual valor desse máximo e Steve terá o máximo. Quais três deles estão tendo o valor máximo. Você pode ver aqui a estrutura que é obediente foi nomeada como endereço, que é do tipo estrutura meia, DDR e da escola. Espero que você esteja ciente dessa estrutura. Este é o soquete da estrutura em que cumprimos os dois elementos com os detalhes. O terceiro tentará se ligar a isso. Temos que dar o número da porta, temos que dar à família de endereços em torno do soquete. Então, todos os detalhes sobre a API de soquete já na sessão inicial do curso. Então, por favor, passe por isso. Nós estaremos cobrindo, o foco principal será como usar a função select na placa de comunicação do soquete. Toda comunicação entre comunicação molecular e celular. Então, vamos ver. Estamos usando um buffer na verdade, então veremos como fazer uso dele. Ouvi dizer. E você pode ver FD definido. Então, estamos usando no lado aqui, já que estamos em nosso programa, monitoramos, porém, descrever soquetes para leitura, escrita, você pode dar também chamado escrita dependendo sua exigência aqui apenas menino recebendo, vamos falar com eles. Vou processar. Então aqui eu leio a superfície FDA do tipo de dados. Novamente, este conjunto de códigos, você pode ver aqui. No entanto, consiga um ponto. A mensagem ou seja, esta é uma mensagem que será enviada da barra lateral para nove unidades para se conectar ao servidor. Enviaríamos esta mensagem a partir disso, eu vou executar este programa em si. Você verá como fazer uso desta mensagem, agosto envie esta mensagem. Então, nessas três linhas de instruções, você pode ver o que estamos fazendo aqui. Você pode ver que é um loop for-loop. E aqui estamos pegando o loop a partir de 0 valor, linhas máximas de sublinhado. O que isso faz sentido? Clientes legais, ele é inicializado para dez. Então, desde que eu quero dez clientes, pode trazer-lhe dez clientes podem se conectar ao servidor, então eu dei isso como dez. E, portanto, esse novo e, portanto, esse loop irá iterar de 0 a n. Inicialmente, o que estou fazendo é que o que é essa área sobre o soquete do cliente? É uma série desses descritores de futebol. Então, sabemos que quando o soquete estiver bem, soquete é criado, então ele retornará um descritor de soquete. Tínhamos mantido o descritor de soquete nesta adição nomeada como cliente e futebol escolar. E inicialmente, como não há cliente conectado, ou seja, inicializaremos todos os dez descritores de soquete do cliente serão 0. Quando o cliente tentar se conectar ao lado dele, um por um, esses elementos de adição serão preenchidos. Socket, ele vai retirá-lo do cliente que tenta se conectar. Então você verá o quão profundo essas coisas em todo esse programa em si. Então o que estamos fazendo. Como este é um programa da barra lateral, criaremos o soquete lado a lado. O que é como criar o soquete? Sabemos que temos que simplesmente a função de soquete dessa maneira. E essas são as configurações em humanos que devemos fazer uma pausa. Esse é esse primeiro argumento, segundo argumento e este argumento de parte. Esta é a família de endereços. Vimos os detalhes sobre isso na sessão anterior, o tipo de soquetes, e faremos comunicação de soquete usando o mercado de soquete de fluxo Bagram. Então eu mencionei o tipo do soquete também os detalhes disso inexplicados na sessão inicial. Este 0 será passado aqui. Depois que o soquete no lado do servidor for criado, ele retornará. Se for bem-sucedido, ele retornará esse soquete mestre. Verifique se é bem-sucedido ou não, definitivamente essa condição é dada assim. Aqui, este soquete mestre será o descritor de soquete na barra lateral, que obtivemos. Assim que esse soquete for criado, este soquete mestre, tentaremos vincular esse soquete de servidor circulado mestre ao número da porta, e tentaremos ouvir no número da porta. Vou tentar simplesmente aceitar a conexão. Se tentarmos iniciar o cliente do outro lado a partir de um terminal N, então, uma vez que ele estiver escutando, o servidor aceitará a conexão do cliente. Se o cliente se conectar à mesma porta, entorpecido com todas as coisas que veremos aqui no site do servidor. Como vincular, como ouvir, como aceitar. Agora, as próximas instruções de configuração, que estão lá, são o soquete definido de OPT. Portanto, isso também é opcionalmente e o soquete mestre para permitir que eles se conectem eticamente. Então, ele fornece as diferentes opções que você pode liberar o soquete aqui nesta instrução que está feita. Próximo setor de instruções que você está recebendo, você sabe, você pode vê-lo. Isto é o que você está fazendo como eu disse, o que esse endereço? São as artérias do soquete soviético já vistas no básico do soquete. Como preencher. É assim que esse pilar externo, essa variável, cada elemento dessa variável um a um, com o membro do conselho da família. E com todas essas coisas temos que proteger. O destruidor não é membro do. Então, tudo o que é ter todos esses membros nesta conta de vídeo é ter essa é a família com a qual temos que viver. Família do soquete. Você quer o Ben? Que todos os detalhes do tempo do soquete explicam você na sessão inicial, por favor, passe por isso também, eu me concentrei neste ADR de ferro e na pontuação. Na sessão anterior do soquete para passar por ele. Então este número de porta, que eu lhe darei um número de esporte, eu simplesmente defini o hash para quatro vezes oito para que você possa definir número para qualquer número do relatório, sem problema. Mas isso lembre-se quando você tenta se conectar a partir do cliente, você tem que se conectar no mesmo número de porta da barra lateral, que lhe dará , se você me der um número de porta diferente, o site do servidor. E você quer, e você quer que o cliente se conecte para fornecer o mesmo número de porta, o que você der aqui no lado do servidor. Então esse declínio pode decidir o que então pode aceitar a conexão. Ele está vinculado a esse número da porta. Então, é assim que estamos vinculando o número da porta do soquete lateral e estamos dando os detalhes do bolso da família da lista para mim. Então, isso é tudo sobre além do programa. Basta imprimir a mensagem ouvindo no número da porta. Então você receberá essa mensagem de exibição no console dos elementos repentinos que tentamos iniciar o cibernético deles. E então aqui chegamos, temos que chamar a função de escuta. Isso significa quanto da conexão pendente pode estar inoperante no soquete dividido dois do cliente, dependendo da conexão V1. Portanto, estamos dando a esses ouvintes também. Assim, você pode fornecer qualquer número de conexões pendentes no cliente, dependendo da sua exigência. Então, a próxima coisa que estamos fazendo é que estamos simplesmente imprimindo essa mensagem no console aguardando conexão. O servidor está aguardando conexão. Todas essas mensagens veremos no site do servidor, já que este programa é para o site prata. E então você pode ver aqui que estamos fazendo um loop que é o loop alto e estamos fazendo isso como verdade. Então você pode entender se fizermos um loop e esse loop continuará iterando, então você não retornará em algum lugar do seu blog. Você precisa, para evitar o loop infinito, você precisa retornar deste médico dependendo de deste médico dependendo suas necessidades e você precisa retornar. Você precisa mencionar que este é um loop que continuará funcionando continuamente. Então, aqui vemos o que estamos fazendo exatamente. Então você pode ver essas instruções que nos são dadas, ou seja, o FDE sublinhado 0 novamente, VSCO configurou todas essas coisas que eu expliquei na minha sessão anterior. Essas coisas são extras e você usa a função select. Portanto, lembre-se sempre que você estiver usando uma função select, você deve usar todas essas funções de igualdade e você precisa inicializar todas essas coisas da mesma maneira. Estes são os detalhes sobre isso que eu lhe dei na sessão anterior. Qual é o propósito do sublinhado da FDA 0? Como estamos simplesmente usando a leitura f ds, queremos que o software monitore na finalidade de leitura da placa. Então, inicialmente, temos que sempre inicializá-lo para 0. E, portanto, estamos chamando esse sublinhado AVG 0. Então, isso é o que eu declarei e inicializamos o nosso programa. Então você pode ver aqui apenas tomando um a cada dito que somos. Então, todas essas coisas exigiremos e chamamos a função select. Na Itália, simplesmente neutralizamos todas as listas, lista de todas as evidências para 0. Isso significa que, se você chamar essa função, então f decidir qual é, qual é o tempo chamando aqui e analisando o soquete de Moscou. E o quê? Esta função, esta função, se você chamar uma redefinição, significa que qualquer descritor de soquete que você fornecer aqui, na verdade, será adicionado nesta lista. Descritor de soquete. Portanto, este é o problema específico do descritor de soquete individual que se coloca. Então, suponha que você precise monitorar três descritores de soquete. Você tem a meta três vezes, ambos têm o sublinhado definido. No primeiro argumento, você precisa passar esse descritor de soquete e você precisa adicionar esse descritor de soquete. Você precisa adicionar nesta lista do descritor de soquete que é lido FDA, pois você deseja monitorar esse descritor de soquete para obter legibilidade. E, portanto, você está passando que disse TO. Então, suponha que você quisesse que o descritor de soquete monitore para fins de escrita. E se você tiver inicialmente ou declarado FBS direito que você fornece o descritor de soquete como argumento oposto e você pode dar como segundo argumento o endereço MVS correto ou escrever f ds. Mas como neste programa queremos ou precisamos monitorar o descritor de soquete para fins de leitura. E, portanto, dei, tenho que adicionar esse soquete a esta lista do descritor de soquete para que o soquete do servidor possa ser monitorado para fins de legibilidade. Por isso, o que estou chamando essa função. Então o que estou fazendo. Você pode ver aqui Max, como eu já expliquei, que estamos deixando este máximo como SB. Desta forma, como d no início deste programa. Qual é o propósito disso? O que esse vídeo celular terá? Ele terá o máximo do descritor de soquete definido. Ele disse a partir deste descritor de soquete como estamos tendo em mim um descritor de soquete aqui. Não estamos criando 23 soquetes descritor de forma equitativa com poeira, mascarar os soquetes ou qualquer descritor de soquete de linha que esteja lá. Então, desde que chegamos, criamos, até agora criamos apenas um soquete e ele retorna o conjunto Burma de nós descritor de soquete. Então, vamos mencionar isso. Inicializaremos esse máximo como David, esse valor, que é soquete de sublinhado mestre variável redact. Então estamos simplesmente imprimindo a mensagem aqui é para obter este soquete mestre que teremos depende se você tem que imprimi-lo ou não. Este for-loop que eu tomei. Então, qual é o propósito deste for-loop? Então você pode ver aqui que é um loop while. Então, dentro desse loop while, antes de tudo, temos que inicializar todas essas coisas. Respeito a esta ação da FDA. E então isso é um loop for-loop. Mais uma vez. Neste loop for-loop, o que estou fazendo exatamente pós-operatório. Você pode ver aqui no início deste loop sub y, estou simplesmente adicionando o servidor, um soquete até esse momento você pode entender apenas um descritor de soquete. Não adicionei um conjunto descritivo do leitor na cama para monitorar para fins de auditoria. Mas também quero que uma lista das linhas seja adicionada ao descritor de soquete. Conjunto de descritores para monitorar para fins de auditoria. Porque se suponha que algo seja passado no cliente e, nesse caso, eu também tenho que monitorar, na verdade, eu queria ler realmente do soquete do cliente. Eu quero que o soquete do cliente também seja monitorado se houver alguma atividade acontecendo e interrompendo. Até agora, apenas o soquete do servidor mestre é monitorado para fins de leitura, se eu tiver que adicionar tudo e os clientes realmente agirem na Monica, qualquer ação de leitura deve ser feita em retrospectiva. Também posso adicionar esses soquetes de clientes a essa taxa de BSL para que as coisas sejam lidas nesse soquete do cliente. Então eu posso lê-lo, na verdade, uma vez que eu adiciono usando o conjunto vazio. Então, primeiro se você quiser monitorar, você também precisa adicionar o cliente, os soquetes do cliente a essa quantidade de propósito. Então você pode ver aqui que há uma razão para eu ter tomado isso para-loop aqui. Este for-loop é que o Isaac é igual a 0 I menos do que o máximo de clientes sublinhados e então eu mais, mais o máximo de clientes, tenho o valor codificado dez. Esta é uma mensagem de exibição de desktop. Agora você pode ver apenas esse soquete de cliente. Como eu disse, esta é uma lista dessa área que é usada para manter a área do descritor de soquete do cliente. Então, inicialmente, vimos, inicializamos todos os descritores do cliente para 0 porque, como não temos nenhum cliente para um ativo, na verdade um por um. Assim que o cliente for conectado ao servidor, cada elemento será preenchido. Na verdade, esse elemento de área será preenchido com esse descritor de soquete fora do cliente. Portanto, inicialmente você pode ver aqui, estou tomando, estou recuperando o valor desse ou desse soquete de cliente. Como quando eu for igual a 0, área de soquete de linha de zeros será como G será 0 em si. Porque, desde agora, nenhum cliente está conectado. E poderia ter verificado essa condição. A condição é que, se esse soquete SDS for maior que 0, somente você deve adicionar esse descritor de soquete do cliente em vídeos anteriores. Então, sobre o que essas três linhas de instrução? Simplesmente, é tudo sobre isso. Estou apenas verificando neste loop se meu cliente está conectado. Desde que eu te disse isso. Se o cliente estiver conectado, nesse caso, o que acontecerá? Vamos tentar preencher essa área com esse descritor de soquete do cliente. Então, suponha que apenas um cliente esteja se conectando ao servidor. Então eu vou pegar o descritor de soquete no cliente e preencherei este Eddie, Eddie zeros, depois o segundo cliente eu tentei me conectar ao servidor e, em seguida, obter o descritor de soquete diferente de o segundo cliente em cada erro de digitação sobre isso. Na verdade, como em cada alelo não há clientes conectados, você verifica as condições. Obviamente, isso está mais conectado e ecoar este SD ou 0 será 0 em si. E, portanto, essa condição não será satisfeita em seu código. Não adicionarei o descritor de soquete, embora ele tenha meses declinando e x ao servidor, então apenas linha direta podemos adicionar a este monitor VS2 leitor para fins de auditoria. Inicialmente, você pode ver aqui não essa condição não será satisfeita. Assim como esta é mais uma condição. Ou seja, se o SDS maior que o máximo, você ainda não sabia que ter Max SD é o que realmente é, descritor de soquete de servidor. Estou verificando se esse 11 é maior que isso. Então, obviamente, até agora não temos nenhuma subida e registro ativo. Essa condição também não será satisfeita. Só isso não ficará satisfeito. Então não temos, não teremos essa instrução executada. O polegar for-loop IV será implementado. Ele se tornará um para aplicar o soquete um. Você pode ver, já que não há soquetes de clientes conectados, portanto, esse valor será novamente 0 e, portanto, essa condição não será satisfeita. Então, isso simplesmente, essa iteração acontecerá de Isaac enquanto para 0 eu menos que. Então, porque inicializamos o cliente máximo para ser dez. Já que neste ponto de partida, uma vez que nenhum cliente está conectado e início deste programa, o PM inicializou todos os clientes, embora os descritores sejam 0. E, portanto, toda vez essas duas coisas não ficarão satisfeitas. E, portanto, não, nenhum desses descritores ocre será adicionado e os descritores serão adicionados ao conjunto descritivo, pois não temos nenhum cliente conectado, portanto, sua área elemento não é ajustado na verdade, não estamos tendo nenhum descritivo de soquete para essa linha. Então, isso é no momento inicial, isso será executado. Então, cada vez que o loop for realmente, então você pode ver pois isso é vital cada vez que esse militar, cada vez que esse loop, novamente, isso será executado. 22. Sessão13 de programa e execução em MultiClientServerComm 2o semestre 1: Em seguida, a próxima linha de instrução é selecionada. Esta é uma instrução muito importante embora. Então, o que acontecerá? Agora? Estamos chamando a função select. Estamos passando todos esses argumentos. Mas um argumento descartado terá. Então, os detalhes de como chamar a função select e quais argumentos fizeram dentro, todos são abordados na sessão anterior. Por favor, passe por isso primeiro, como eu mencionei você talvez se isentar , pois o primeiro argumento terá máximo no descritor de soquete definido acima do conjunto de três descritores mais um, este lado descritivo, lado oito MDS, certo? Sim. E exceção. E ele disse, então qual deles está tendo o valor mais alto mais um? Desde isso, Max tem dv. Agora, apenas um descritor de soquete está lá. Portanto, seu valor, seja qual for o descritor de soquete do servidor mestre é ruim, que desaparecerá depois de chamar a função de soquete no valor mais um, isso seria ruim. Temos que perguntar isso no caso do sistema operacional Linux que tudo o que também descrevi para você. No caso do sistema operacional Windows e você chama a função select. Isso não é dado, na verdade, eu também expliquei o porquê. Porque esse parâmetro está incluído na escola disse Então todas as coisas são cobertas e não dão uma sessão. Por favor, passe por isso. Então. Você pode ver aqui o segundo argumento, estamos passando como operador de endereço VSO. Sabemos que até agora simplesmente adicionamos no setor do descritor de soquete Yvonne suas ideias e que está em um descritor de soquete de servidor, mas nenhum descritor de soquete do cliente que estamos adicionando sabe atualmente em neste estágio, até mesmo ver mais tarde, na verdade, assim que o programa for executado, assim que tentamos lançar o cenário de prazo de troca, na verdade, nós voltaremos o cliente no soquete do cliente descritor me liderar neste vídeo. Por enquanto, como nenhum cliente conectado ou não, não há dúvida de adicionar o M&M nisso mais tarde. Ativado, o único soquete que é o descritor de soquete do servidor é adicionado neste vídeo. E esse valor, o que se chama argumento? Sabemos que este é um. Este é um conjunto vazio. Isso é para fins de escrita. Isso é o propósito da exceção, e esse é um valor de tempo limite. Então, todas as coisas aconteceram na sessão anterior. Isso estamos passando como nenhum para o escritório de redação porque, por enquanto, não queremos monitorar a escrita. Se você quiser ação, você também pode modificá-la em seu, você sabe, como eu disse, você pode adicionar um quarto, certo? E solte e seja o que for. Sócrates, se você quiser, você pode adicioná-lo. Você sabe como editar. Eu expliquei que você ouviu isso. Você pode modificar seu código dependendo do requisito do meu caso. Quero monitorar a auditoria e, portanto, não estou analisando isso. Estou passando por escrever É nulo e o pensamento é humano. E esse quarto argumento aqui é uma exceção. Estou fazendo com eles para monitorar a exceção se eu estiver passando, pois o último argumento é o valor do tempo limite. Também explicarei novos detalhes, na verdade, qual valor de tempo limite, se for um valor diferente de zero, isso significa que muito tempo ele irá monitorar que realmente o percebe fora do soquete descritores e essa necessidade do VS já está lendo público. Então, como o local dá o valor é nulo, isso significa que você é, você precisa. Esta função de seleção continuará aguardando. Na verdade, coloque uma atividade para ocorrer no soquete principal. Ele não retornará nenhum DWT, nenhuma detecção neste soquete mestre. Isso depende do valor que você dá ao tempo limite. Então, todos os dinâmicos explicam você em uma sessão anterior. Então, se você der um valor diferente de zero para dar algum tempo definido, como dez segundos, 30 segundos até a próxima vez, ele realmente gravará e a atividade terá um código na calçada. E se não, então ele retornará o quê? E se não tivéssemos tempo, se alguma atividade se opusesse, ela retornará o descritor do soquete de índice. E você pode realizar a operação de reprodução. Depende, desculpe, isso significa que você está tendo o controle sobre a função select dependendo desse valor do tempo limite, ele controlará o tempo de sem-teto. Você quer sua ferramenta de seleção. Isso é controlável, então essa é a razão pela qual isso ocorre em um dia. Então, paralelamente, você pode processar com outras tarefas também. Portanto, ele não manterá sua função original bloqueando por um longo tempo, poly-time, você mencionou que muito tempo ele será blogado como será errado. Médio com processamento sob tarefa após esse tempo limite. Então esta é mais uma mensagem de linha que aumentará muito para selecionar. Isso só te explica o chão. E ele obviamente vê aqui como o fluxo vai. Agora, estamos verificando com o aditivo algum desmarcar, ele retornará. Este é um retorno, na verdade, ele retornará algum valor, então estamos verificando-o na verdade. Se for menor que 0, incrível. Dessa maneira, estamos imprimindo o erro. Estamos verificando alguns metais que ocorreram chamando a função select. Sempre. Desde que comprou. Agora, nesta fase. E tendo apenas um lado de um soquete, estamos monitorando isso se alguma ação for executada no soquete do servidor. Então você pode entender realmente qual ação pode ser executada no soquete da barra lateral de Besley. Até agora, o que estamos feitos, o que compramos, conseguimos o que fizemos em De acordo, somos simplesmente vinculativos. Fizemos com a vinculação do soquete da barra lateral ao número da porta e terminamos de licitá-los. Na verdade, está ouvindo. E uma vez, qual atividade pode ocorrer nessa atividade de soquete do servidor pode ocorrer como se estivéssemos tentando aprender o prazo de lançamento. Então, obviamente, que nove, se eu tentar me conectar à barra lateral e, em seguida, o servo terá que aceitá-lo. Então essa é a atividade que está aceitando a conexão do cliente. Essa é uma atividade que ocre mecânico no lado da cavidade ocular. Portanto, nesse caso, o soquete do servidor obtido ficará ativo porque o cliente enviará uma ação para a classificação lateral. Nesse caso, a barra lateral ficará ativa. E como você ainda não está monitorando seu servidor para fins de leitura, Deco, você precisa verificar realmente essas opções. Esta opção por meio dela é necessária. Também expliquei, você pode ver esse bloco que fiz após a função select. Temos instruções de configuração legais para verificar, na verdade, qualquer um dos descritores de futebol foi definido na verdade no seu conjunto de descritores. Significa o quê? Como qual função select retornará, na verdade ela retornará com esse número na parte superior. E isso pode ter algo de descritores com o ID para a operação tenha melhor desempenho quando você precisa continuar marcando, que são o descritor de soquete está pronto. Então lembre-se também que esta leitura f ds será modificada na verdade após a função select. Então desde então, desde agora você está passando apenas adicionando apenas um soquete vai deixar a função de seleção de menu óbvia. Isso será modificado com o valor dos descritores de futebol. Retorno. Sim. Portanto, esse bloco está lá no ensino somente até tanto por isso que isso é necessário. Este bloco, que acabei de destacar aqui, ele simplesmente diz que depois que a função select foi chamada, obviamente quando está retornando para ver que o descritor morto definido em sua taxa de lições Eu lhe disse que o estado do VS será modificado depois você chamar a função select inicialmente o que esta taxa de VSS tem, tendo a lista de ambos descritor de soquete está com você. Você quer que eles sejam monitorados. No caso dos FDA lidos, você também está adicionando todos aqueles em sua criatividade. Depois que essa função select for chamada executada, ela retornará certo? Depois que ele retornar, isso será modificado. Isso terá com isso na lista de descritores que estão prontos para essa funcionalidade. Ele não terá o descritor de soquete mais antigo. Ele terá apenas esses descritores de soquete prontos para realizar a finalidade de leitura no caso deste conjunto descritivo. E, portanto, você tem que perder essa coisa destacada, essas instruções para verificar realmente o descritor walk ou socket à medida que você recebe a verificação WSUP uma a uma. Mas qualquer descritor de soquete está presente neste leitor de ds. Se estiver presente neste vídeo, isso significa que o descritor de soquete está inativo. O soquete está pronto para fins de leitura porque isso depois selecionar quantidades de módulo serão modificadas. retorno de deficiência terá o valor desses apenas soquete uma finalidade de coordenação retardada e pronta. Se ele estiver tendo n soquete descritor, que você está monitorando para reiterar leitura e apenas dois deles estão prontos. Portanto, a função select é chamada. Apenas dois dos soquetes serão adicionados. Leia o FDA e você não sabe. Você tem que verificar um por um. Todos os dez, na verdade, se você quiser verificar qual deles está presente em seu conjunto de descritores. E, obviamente, dois deles são essa condição para isso, já que no nosso caso na parte inferior agora isso é monitorar apenas o soquete do servidor mestre. E, portanto, eu sou simplesmente, eu acho que o código para tirar muitos semestres, etc. descritor de soquete ocular em seu soquete mestre está presente em 3D de ds. Se estiver presente, isso significa que esse soquete está pronto para fins de classificação. Essa condição será satisfeita. Este é o principal objetivo de usar o sublinhado da FDA é dito, Você deve usar depois que a função select é chamada. E, portanto, nesta célula, se isso estiver satisfeito, fica satisfeito. Isso significa que chamarei a função de saída que eu disse a você atribuir conexão ao servidor no mesmo número de porta e, em seguida, aqueles precisam aceitar essa conexão. Eu coloquei. Estou chamando essa função de trecho. E então cinco, vendo o mestre Sócrates quer que seja um soquete de servidor é que estamos analisando os detalhes que endereços presenciais e todas essas coisas. Mas quero dizer que ele faz, é que ele retorna, ele retornará o descritor de soquete da linha do livro, que fica conectado. Conseguimos esse estágio. Essa condição está satisfeita. Isso significa que nesta fase há uma linha que é lançada. Então, até agora, não tínhamos nenhum. Mas uma vez que tentamos lançar a linha escura, o cliente tenta se conectar ao solucionador na cama após essa seleção. A função select. Você sabe, ele estará esperando, na verdade, no nosso caso, ele estará esperando por noite indiferente até uma conexão do cliente. Você pode ver aqui, estou imprimindo isso antes selecionar quando você inicia o servidor. E você pode ver aqui, você receberá a mensagem antes de selecionar este ponto. Aquele servidor está esperando, na verdade, já que ele mencionou aqui. Isso é isso, todas essas coisas não seriam satisfeitas na verdade, que não está mentindo porque essa condição é somente quando o cliente tenta se conectar ao servidor e há alguma atividade. O lago eu descendo a conexão, então só nós estamos. Essa condição não teria sido satisfeita se essa for a coisa. Então, definitivamente, você pode ver aqui, uma vez que eu tentei iniciar o servidor em Novo, você pode ver a seleção padrão de seleção local. Você não verá o registro deste select porque de repente que está esperando, na verdade, porque você não deu aqui. Depois de lançarmos a linha escura, ela tentará se conectar com o solvente e você receberá toda essa mensagem será impressa. E você também receberá essa mensagem impressa nesta nova conexão. Na verdade, isso significa que a aplicação tem um in proporcionou a mesma nova conexão. Este vídeo fará com que apenas um cliente seja conectado. Então, obviamente, quando o cliente está se conectando, servidor está enviando a mensagem. O que é esse cliente? Portanto, este é o descritor de soquete ou o cliente que trouxe a conexão. Como essa função de trecho o retornará, retorne o descritor de soquete de linha escura do lado do servidor que estamos enviando. Você tem que lixar neste soquete alguma mensagem, como eu lhe disse, qual é o propósito deste programa? O que faremos, tentaremos iniciar o servidor seguida, leia-gravar para conectar-se no mesmo número de porta da vista de todos. Então ele vai. Tudo isso estará aparecendo que está em baixo deslocamento IV entrará no lado do servidor. Você receberá esta mensagem, nova conexão em todos. O servidor enviará uma mensagem para o cliente dessa maneira. Esta mensagem, o que ela está lá. Agora, o uso desta mensagem vem. Então, como já gravei essa mensagem para esse valor, você pode ver aqui, esta é uma mensagem de ponteiro de gato. E recebi que esta mensagem é confirmada mensagem de confirmação enviada do servidor. Então, aqui estamos enviando a mensagem do lado do cliente dessa maneira, o soquete do cliente. E isso é apenas para exibir a mensagem no lado do servidor, mensagem de confirmação é enviada com sucesso deles. Várias. Agora, este é um loop a mais do que , na verdade, essa condição em si. Então, todas essas coisas em que estou mencionando isso, na verdade, quando leio essas instruções, conforme dado nesta condição, esta é a condição e você tem que master socket, que são fornecedores nosso Sócrates obtendo a conexão do cliente. Isso significa que o cliente está presente na verdade n. Agora, obviamente o que você está fazendo, você está tentando sair da conexão do lado do servidor. E mais uma coisa que você deve fazer, você pode simplesmente adivinhar. A mais coisa que é necessária ainda é agora. Você pode ver em nosso programa o que fizemos. Temos na matriz para o descritor de soquete do cliente, inicialmente ele está começando a inicializar para 0 porque não há aplicação conectada. Mas agora, neste momento, se essa condição for satisfeita, isso significa que ela está aceitando a conexão, então ela pode aceitar a conexão. E há uma solicitação de cliente para se conectar ao servidor, então o servidor pode aceitar essa conexão. Isso significa que há um cliente que foi lançado. Agora, qual é o nosso papel, na verdade , o que devemos fazer, devemos adicionar esse cliente realmente no conjunto descritor para fins de leitura. Esse pai no filtro é algo que acontece naquele soquete do cliente. Para leitura, podemos simplesmente monitorar na verdade e podemos executar a ação. Portanto, essa lógica é necessária, na verdade, aqui você pode ver esse loop e você pode ver que estou fazendo um loop a partir de 0, eu menos do que a linha de sublinhado máximo I plus, mais. Estou verificando essa condição. Na verdade. Por que essa condição é verificada, porque você pode ver inicialmente toda a área e os humanos desse soquete de cliente são inicializados para 0, suponho. Então, inicialmente, sabemos que nenhum deles foi lançado. Agora, neste 0.1 em declínio foi lançado e apenas um cliente está conectado. Portanto, você simplesmente preenche esse descritor de soquete de uma linha. Isso você o preencherá como um zeroeth membro dessa área do soquete do cliente. Isso está tendo a lista do descritor de nove soquetes. Portanto, apenas o 0º elemento desta matriz, esse descritor de soquete de cliente será preenchido com o fornecedor e o descritor de soquete que você comprou. O interior aceitaria a conexão. Por que essa condição é necessária, por exemplo, por enquanto, já que o que estamos fazendo toda vez o cliente se conecta ao servidor, estamos adicionando-a no soquete desse cliente soquete aqui. E, portanto, nesse caso, isso, desde a primeira vez já o adicionamos. Está aqui. E na segunda vez , novamente, a conexão entra. Outro cliente tenta se conectar ao servidor. O que acontecerá, obviamente, o 0º elemento desta matriz será diferente de zero porque você é, você já está preenchendo e deitar em si, o descritor de soquete do cliente nesta configuração. Portanto, essa condição não pode ser satisfeita na verdade, e antes que eu me torne um, novamente, a verificação manual do soquete do cliente se é 078 será 0. Simplesmente para dizer que este soquete de cliente eu serei 0 somente quando seu cheque realmente começar que ele tentará adicionar. Então, espero que você esteja entendendo realmente o que estamos tentando fazer. Então, um por um, cada vez, tentaremos preencher esse array simplesmente verificando se é 0. Na verdade, isso significa que temos esse descritor de soquete do cliente nessa posição. Se já estiver tendo algum valor, isso significa que nosso descritor de soquete já está adicionado nessa posição. Devemos incrementar eu por um, na verdade, e temos biotecnologia outra posição se esse valor é 0 ou não, é break Maya aplicado novamente, não precisamos tomar, na verdade, porque nós chegou ao ponto em que temos que construir este soquete é o descritor de soquete do cliente na matriz e, portanto, temos que sair. E esse ponto. 23. Sessão13 de programa e execução em MultiClientServerComm 2o part2: Agora, a próxima instrução será executada, na verdade porque todas essas instruções estão presentes em seu tempo, verdadeiro, embora verdadeiro, que nós demos. Aqui. Este é um bloco inteiro do código que está presente na verdade. Portanto, as próximas instruções que estarão lá na verdade estão fora disso. Então, todos os conjuntos. Agora, este conjunto de FD, vimos o que todas as coisas estavam presentes. Na verdade, o que devemos fazer, eu paro tudo o que você tem para aceitar a conexão do cliente e o soquete do cliente que obtemos, nós temos que simplesmente adicionar em não Eddie realmente neste soquete do cliente faz essa atividade que temos que fazer. E também enviamos a mensagem por mais tempo para recusar essas coisas que estamos fazendo extrair ações para fora esta condição if. Isso é mais um for-loop. Na verdade, eu não sabia. Isso é, em geral, o Khonsu, o que estamos fazendo. Este loop for é simplesmente usado para verificar, na verdade, ler se há alguma operação on-line. Agora você sabe que seu cliente foi iniciado, na verdade, isso está conectado ao servidor. Agora você pode adicionar realmente seu cliente ao conjunto de descritores para fins de leitura. Assim como você pode simplesmente verificar realmente a mesma coisa que você está verificando para o lado Savoir, ou seja, um v é igual a definir após a função select. Isso é a mesma coisa que você pode verificar realmente pod Também o soquete do cliente na verdade. Agora, este for-loop, na verdade, é usado apenas para verificar o que, na verdade, se houver alguma atividade, a operação de entrada-saída está acontecendo, se houver algumas operações de E/S acontecendo nos soquetes do cliente. Por enquanto, estamos tendo apenas um soquete de cliente, mas agora neste ponto não estamos, ainda não adicionamos esse soquete do cliente em seu conjunto descritor do ds de leitura, então não podemos monitorá-lo, certo? Então, essa coisa é gastar Olivia para adicionar esse soquete de cliente também no MDS na verdade, até mesmo ver a cabeça que temos que adicionar. Apenas lembre-se que este for-loop é usado, na verdade, este loop for é usado apenas. Ele pode ver aqui, eu tomei que é igual a 0, eu menos que o máximo de clientes, ou agora estamos tendo dez clientes. Na verdade, faz dele um mecânico. As linhas podem estar lá. Isso é que agora esse soquete cliente de zeros na Itália I é igual a 0. Aplicando soquete neste curso, OK e z ao que é. No entanto, somente onde você pode ver o prazo final do que se conectou ao servidor. Adicionamos o preenchimento deste descritor de soquete desse cliente no 0º elemento na barreira do restaurante do soquete do cliente e soquete off-line humano é 0. E, portanto, você pode ver o soquete de sublinhado do cliente 0 subscrito lhe dará. Bom descritor do primeiro cliente que unidade, o que é autêntico, foi realmente feito para o solucionador. E, portanto, você está fazendo com o SD faça algum valor na verdade. E, portanto, nesse caso, então é isso que, quando tudo isso vai no menu ou tentando iniciar a linha, não quando você esta noite para iniciar apenas o servidor quando respondeu para iniciar o cliente e conectar-se ao mesmo polo, então apenas todas essas coisas acontecerão, o n Então também estamos verificando, na verdade, ou seja, se o cliente estiver conectado ao soquete e este SDK estará tendo alguns valor, não será 0. Nesse caso, na verdade, estamos apenas verificando a condição na verdade. E D é dito é o que é descrito soquete realmente descritivo se for residente nesta leitura todos os anos. Então, quando essa função chamá-lo em verificação neutra somente após o select, podemos usar essa função em um soviético e verificar se o soquete do cliente está presente nesta cidade, o esforço do MDS não está presente. Isso significa que este descritor de soquete está pronto para fins de leitura. Se estiver presente, isso significa que há alguma atividade neste soquete do cliente para fins de leitura e temos que executar a ação, temos que lê-la. Isto é o que inicialmente nada será satisfeito nessa condição porque antes de tudo, não estamos adicionando, na verdade, ainda não o adicionamos como d Na verdade, neste vídeo disso para monitorar para que possamos verificar após a função select. Portanto, isso não será executado. Portanto, mesmo que este loop for executado até esse ponto, já que inicialmente o soquete do seu cliente está tendo algum valor, essa mensagem será impressa por essa condição não será satisfeita porque não estamos adicionando isso. Não estamos adicionando o soquete é o descritor do soquete do cliente. Na verdade, a FDA, esta condição não será satisfeita. Então, novamente, o que acontecerá? Qual condição é esse nó condicional completo completo com esse todo completo se a condição não for satisfeita. Então, o que acontecerá? Novamente, o for-loop será incrementado em um. Novamente, verificaremos essa condição se for menor que o meu cliente, então novamente o soquete do cliente de um como d. Então agora como d será 0 porque estamos tendo apenas o 0º elemento desta matriz para estar tendo o primeiro descritor de soquete do cliente do curso, mas o soquete cliente de mn não é nada, na verdade, apenas um cliente foi conectado. Na verdade, isso será 0 agido neste loop, na verdade, ele irá iterar até dez vezes porque esse valor que você deu como dez, isso irá iterar dez vezes. Você também pode aplicar uma pausa? Se esse valor realmente for 0, na verdade, você pode simplesmente aplicar uma pausa. Você pode adicionar esse código também para evitar a iteração desnecessária do loop for. Agora, então o que acontecerá? Na verdade, uma vez que esse loop tenha sido iterado completamente, o controle voltará para a primeira linha neste loop while porque você deu enquanto verdadeiro. Portanto, ele continuará iterando até que um analista que você não retorne. Então, novamente, o controle vai aqui na verdade. Agora, novamente, o que acontecerá? Lembre-se sempre de uma coisa. Por essa coisa. Essa coisa é que eu dei o início do loop while porque você sempre tem que inicializar seu editor ou ler um VS com valor 0 porque você sabe que após a função select, este dy dt ds é modificado com os descritores que estão prontos para fins de leitura ou sentido. Ele é mais ou modificado após a chamada da função select. Portanto, toda vez que esse controle vem no início deste loop while e você tem que verificar novamente a mesma coisa. Você sempre precisa limpá-lo para que você não obtenha o valor no valor anterior. Portanto, seu 12 é definido como 0 no ponto inicial deste loop while e, em seguida, você está configurando. Então, aqui o que acontecerá? Novamente, esse soquete mestre da alma já está lá. Isso será, já que você está limpando, a velocidade de B. Então, novamente, você está adicionando esse tipo de soquete ocular a este Vds porque você está, você limpou. E então esse máximo é D será o borrão. Agora, o que acontecerá? Vamos ver como as coisas vão. Estamos considerando que, embora estejamos conectando um cliente está se conectando ao servidor no mesmo número de porta. Portanto, estamos considerando que estamos tendo um cliente. Agora, se você considerar isso nesse caso, o que acontecerá? Novamente, esse loop for será executado. Então, você pode ver que as instruções linha a linha são executadas. Então, qual instrução é a seguir? É um iss iterando for-loop igual a 0 até que eu menos de dez seja igual a 0, portanto, o soquete do cliente ou 0. O quê? Sabemos que, como um cliente já está conectado, portanto, somos capazes de classificar o campo, na verdade, o 0º elemento do soquete do cliente com o descritor de soquete do primeiro cliente. Portanto, isso retornará um valor diferente de zero. Isso terá valor positivo, não será 0. E, portanto, essa condição maior que 0 anos, essa condição seria satisfeita. E yard é o ponto em que você está adicionando o soquete do cliente no disco vermelho, leia descritivo seg. Tudo bem, espero que sim. Na verdade, não havia nenhum cliente, na verdade, eu disse que, inicialmente, estamos inicializando no descritor de soquete do cliente para 0. Na verdade, vimos em Verdi, mas esse ponto de dívida quando essa instrução executamos, teríamos visto, já que todos os elementos da matriz são 0 e, portanto, isso não será satisfeito. Vimos, mas agora, desde que estamos considerando que um cliente está conectado. E, portanto, quando essa instrução é executada, o 0º elemento da matriz está tendo o conjunto descritor do primeiro cliente. E, portanto, isso será um valor diferente de zero. E, portanto, isso significa que você está tendo um cliente, na verdade, o qual você deve adicionar o conjunto de descritores e, portanto, você está chamando. E nós dissemos, e esse descritor definido, esse descritor que é o descritor de soquete do cliente, que é SD que você está adicionando nesta lista de leads. Agora, o que você tem realmente postura da FDA enquanto você está tendo esse tipo de soquete que é mestre e seu co socket. E você também está tendo seu cliente que você está considerando estar conectado, portanto você está tendo este descritor de soquete desse cliente nesta leitura de Deus para descritores de termo de soquete você estão tendo agora o que você está fazendo aqui, você está verificando se o soquete da dívida como D é maior que o máximo como o único. Inicialmente, seu máximo como d era o soquete principal de sublinhado. Agora você está verificando, na verdade, se o SDI, que é o descritor de soquete do cliente. Suponha que você obtenha o descritor de soquete do cliente para ser maior que o descritor de massa por soquete, então você está verificando esse fundo cada. E, na verdade, se for maior do que esse sublinhado máximo, pois Stephen será modificado com esse valor descritivo. Então é isso que você está fazendo. Cure. Então, novamente, o eu é incrementado, eu me tornei um. Portanto, você verificará essa condição se for menor que o México e ele é, então você verá aqui que o soquete do cliente subscreveu um. O que ele retornará, obviamente, agora estamos considerando apenas um cliente para estar conectado. E, portanto, esse soquete de cliente subscrito terá o valor 0 e também o restante deles elementos de área terá o valor 0 porque apenas um cliente está conectado. Portanto, somente o 0º elemento desta matriz está tendo o descritor saccadic da primeira linha e o restante dos elementos da matriz estão tendo zeros, então isso será 0 e nenhum deles será satisfeito. Então, dessa maneira, esse loop continuará até o máximo de sublinhado contornos e essa condição não satisfará de um a máximo de clientes sublinhados no, será satisfeito inicialmente que é Isaac igual a 0, em seguida, adicione esse caso somente no tribunal satisfeito mais tarde da iteração do loop for. Ele não será satisfeito quando esta iteração de loop for concluída. E o que é ruim? Simplesmente uma mensagem de exibição realmente repos a seleção. Agora estamos chamando a função select aqui. Agora, nesta função de seleção de Eu inveja chamada, Na verdade, estamos passando esse valor. Este valor é modificado max entendido como t aqui. Então este levou a DSO VR, líder FDA diz Tendo comprado agora para descritor, ou seja, o soquete do servidor, linhas descritivas, hiper soquetes. Portanto, há dois descritores nesta escritura do DSB que querem monitorar ambos para fins de leitura. E esse valor nulo, nulo e este último valor nulo. Isso é que você tem que continuar esperando até obter qualquer soquete descritor para estar pronto. Então você tem que esperar e esperar. Portanto, você recebe isso nulo. Você novamente controla na verdade, dependendo do valor que você dá aqui, ele pode ser controlado. Portanto, aqui ele continuará esperando na verdade. Então, suponha que haja alguma atividade neste soquete de cliente que você não estava realmente, nesse caso, na verdade, ele selecionará, retornará realmente o conjunto de descritores. Este exemplo eu escolhi porque suponha que eu escreva alguns olhos, tenho alguma mensagem no console de linha. Isso significa algo que estou escrevendo naquele soquete de linha, certo? E isso seria, essa mensagem deveria ser lida na verdade, portanto, já que estamos monitorando em nosso programa para fins de leitura, portanto, estou escrevendo algo sobre o cliente para que podemos lê-lo. 24. Sessão13 de programa e execução em Session13 3rd Half: Portanto, há algo a ser alguns dados a serem lidos no soquete do cliente até agora, vimos essa célula. O que é esse cliente? Existe uma conexão aceita, na verdade, a mensagem foi enviada de servidor para cliente. A próxima coisa que faremos, na verdade, tentaremos escrever algo sobre o cliente. Uma vez que escrevemos algo no cliente, isso significa que algumas atividades de leitura devem ser feitas porque estamos escrevendo no soquete para o cliente e alguns dados lá nesse soquete de linha que é suposto para ser lido. E, portanto, nesse caso, função de seleção retornará realmente com algo. Em seguida, escrevemos algo no cliente e, na verdade, ele retornará. E então temos que verificar novamente a condição realmente onde a linha, você tem que verificar cada uma de suas incidências aqui há dois descritores. Isso é um para o servidor, um para o clima. Perceba algumas atividades realizadas no site do servidor. Visite esta condição está marcada. Por enquanto, quando escrevemos a mensagem nessa linha, não há atividade feita no mestre, portanto, essa condição não será satisfeita. Então, o que acontecerá? for-loop está fora da condição da ponta. Portanto, essa condição será verificada. Bactérias, esta condição eu te disse que é Doumani, isto é para operação de entrada IO no lado do cliente. Então aqui eu sou igual a 0. E, novamente, o soquete do cliente de 0 será, você sabe, que já é um cliente conectado. Portanto, isso retornará um valor diferente de zero. Portanto, novamente, você está verificando este 0º elemento desta matriz terá o primeiro descritor do Postal is client na verdade. Então, já que estou escrevendo algo, suponha que eu esteja escrevendo alguma mensagem sobre o clima, veja como conseguirei realmente um lado e protegerei o programa. Você explicará, você entenderá melhor. Ele dirá que você entendeu o que estamos fazendo. Estamos desse lado, onde está o cliente deles, seus servidores estão enviando mensagem para essa linha? E suponha que escrevemos o console do cliente é olá. Portanto, olá é VR. Estamos escrevendo no soquete do cliente. Portanto, suponhamos que haja alguns dados no soquete do cliente e devemos lê-los. E eles são colocados nesse caso. Mais uma vez, estamos verificando. Vimos que a função select é chamada e vemos se alguma atividade e sim, atividades realizadas na verdade, há alguns dados disponíveis no soquete do cliente que devem ser lidos. E, portanto, essa condição é Wilczek. V é igual a dito, que é o soquete de declínio, se ele está presente neste líder VS. Eu lhe disse após a função select, ela será modificada. Como adicionamos chamar a função select que está aqui, estamos chamando a função select. E como escrevi algo no cliente, havia algum conjunto de dados que deveria ser lido no console e, portanto, isso será modificado para este líder VS terá o descritor de soquete ou na verdade não terá um descritor de soquete do mestre porque não estamos fazendo nada sobre a deficiência do oficial mestre modificado no octeto. Selecione retornos em cada alelo. Isso é ter dois conjuntos de descritores de um lado, escreva a mensagem, um lado, escreva a mensagem de um lado escreve qualquer coisa no soquete do cliente. Isso terá na linha dos descritores, não em uma calçada. E, portanto, a razão pela qual isso não será satisfeito na verdade, esse é este neste descritor de soquete de servidores. Então observe que não está lá porque estamos fazendo a atividade na atividade de leitura do cliente que temos que fazer no cliente. E essa placa aqui. Como esse valor é diferente de zero e sim, acabei. Escrevi uma mensagem no soquete do cliente que deveria ser lido. E, portanto, a velocidade do VS está tendo apenas o descritor de soquete desse cliente na verdade e, portanto, esse MV é igual a definido, sim. E agora o que devemos fazer, estou simplesmente imprimindo uma mensagem que será exibida no console e devo lê-la no descritor de soquete do cliente na verdade, e vou lê-lo e será, estarei coletando o que eu li deste descritor de soquete do cliente que estou coletando neste buffer. Este é o uso do buffer. Eu te disse, eu declarei esse buffer como um EDI realmente fora de personagens. Você pode ver aqui. Isso é armazenado em buffer, esta mensagem, o que quer que eu esteja escrevendo no soquete do cliente que eu queria ler, na verdade, para que eu colete no buffer. Na verdade, a verificação de erros. Isso é o que verifica erros. Se alguma edição ocorrer durante a leitura essa condição será satisfeita. Este bloco será executado. Mas se a leitura for bem-sucedida, este eds será executado e saindo. E isso é desde o que eu disse que o que quer que eu esteja escrevendo no soquete do cliente, veremos como estou roubando. Depois de concluir a explicação dessas instruções, executaremos o programa, você entenderá o que estamos fazendo. Então, suponha que eu esteja digitando qualquer mensagem no soquete do cliente, devemos lê-la. Portanto, essa leitura está feita. Mais uma vez, eu puxei, pois ocorreremos a mesma mensagem no avião. Então, se eu perdi o olá está em declínio. Soquete. Então, a próxima coisa na próxima linha, vou receber olá só porque estou absolvendo a mesma coisa. Então, como vou receber o olá na próxima linha por essa coisa. Como condição, enviei novamente a mesma mensagem, a mensagem que são imagens coletadas no buffer. Na verdade, você pode ver que estou novamente chamando a segunda função. Estou chamando a mesma função e passando o próprio descritor de soquete de linha. E estou passando esse buffer, que eu li na verdade do soquete do cliente. Isso só a mesma coisa que estou passando contra todo o soquete do cliente, você verá a mesma coisa impressa na verdade. É assim que o fluxo vai. Então eu vou absorver você entendeu esse ponto na verdade. Então, vamos executar o programa e então você o entenderá com mais clareza. Então é assim que terminamos com a codificação. Este soquete realmente e fraco dessa maneira, podemos lançar em número ímpar de linhas ainda não podemos exceder apenas portátil e os clientes podem ser conectados, já que estamos escrevendo aqui como soquete do cliente, cliente máximo deve ser dez dependendo da sua exigência. Se você quiser soquetes anticlines, então você pode dar esse valor como moderno ou você pode se proteger, definir esse valor. Agora vamos executar o programa e ver como ele será executado. Então, este é meu dominó na verdade. Só um segundo. Sim. Você pode ver aqui que estou tendo este programa que eu mostrei a você. Agora, vou compilar, já que temos que compilar um programa C no Lena, estamos tendo a viabilidade de executar o comando neste prompt de comando na verdade. Então, se for uma linguagem C, portanto, estou usando um compilador GCC, que já está, que já estava instalado no sistema. Não preciso instalá-lo explicitamente. Então vou mencionar qual arquivo compilar a ferramenta de compilador GCC, ferramenta compilador cruzado que é usada para programar o quadro da linguagem C. Portanto, você pode ver aqui, você pode ver aqui nenhuma mensagem de erro veio. Deixe-me fazer ls a inicialmente ouvimos neste arquivo C. Agora, depois de compilar, eu vou para isso um ponto fora. Este é o meu lado, eu agora deixei eu iniciar ou executar minha barra lateral simplesmente executando isso. Agora, você sabe, quando eu tentei executar o servidor, vamos ver o que acontecerá. Você pode ver aqui o que estou recebendo enquanto estou recebendo essa mensagem que dei no ouvinte lateral do Salvo na porta 888, aguardando a conexão. Seja qual for a mensagem que eu tenha dado no lado do servidor, eu tenho todas as coisas. Valor do soquete mestre para ser três. Então, isso é apenas, eles simplesmente sabem qual é o descritor de soquete do soquete mestre em um soquete de servidor. Então acabei de imprimir esse valor e ele é três na verdade. E agora isso, todas essas linhas que estão em quatro loop para adicionar soquete filho. Então você pode ver aqui, já que não há clientes, soquete que é adicionado, na verdade, porque não há nenhum cliente que lançamos isso, mas nenhum deles. Nós seremos área, área do soquete do cliente será tudo, ele terá todos os descritores de soquete 0 porque nenhum deles, nós não lançamos nenhum, nenhum soquete do cliente. E isso é antes da seleção da célula. Você pode ver aqui antes do select, na verdade, isso significa essa exibição que temos. Imprima agora. Você pode ver como o controle está esperando aqui. Ou seja, nosso controle está preso e a função select. Por que eles começaram na função select, porque estamos mencionando o tempo limite para nulo. Sabemos que quando damos o tempo limite para que o conhecimento estará esperando por eles. Alguma atividade para ocorrer realmente incenso para ser honesto, neste ponto estamos simplesmente adicionando o soquete mestre em linha ímpar, ler conjunto vazio. Portanto, ele irá monitorar se alguma atividade continuará, nesse lado , qual soquete haverá, não obtenha um solvente. Que atividade pode estar acontecendo no soquete do servidor se estivermos tentando iniciar o prazo. Estou conectado ao mesmo número de porta no soquete. Então só haverá alguma atividade. Então, então, receberemos a mensagem depois de selecionar impresso, na verdade , este select não será lido. Essa é a razão pela qual estou exibindo esta mensagem. Então, como eu, para que você possa obter o que estou fazendo exatamente. Então, deixe-me mostrar-lhe. Neste ponto, estamos tendo sobrevivido apenas nulclinas de lançamento lançadas. Você pode ver aqui neste descritores de soquete de cliente que são dez soquetes de clientes que estamos tomando e todos os scripts, esses, mas todos esses soquetes de dez linhas inicialmente 0 porque nenhum deles à medida que somos lançados, não estamos lançando nenhum neles. E este soquete é para o lado do servidor, o soquete principal, que são, que estou simplesmente imprimindo aqui. Na verdade. Eu ouvi, na verdade. E então você pode ver aqui. Você pode ver aqui que estamos recebendo todas essas mensagens escutando na porta, no lado do servidor, aguardando conexão no lado do servidor. Então esse loop while é loop através desse loop infinito. E depende de quando você estiver retornando, se você estiver saindo do seu cliente, isso retornará na verdade. Então, essas coisas, estamos dando isso começando você e você pode ver aqui. Md 0, todas essas coisas. Então, o que está acontecendo? Agora? Que mensagem estou recebendo aqui, se você puder ver aqui, estou recebendo essa mensagem em for-loop para soldar o soquete de junta. Isso é o que realmente aqui você pode ver que estou imprimindo o valor do soquete mestre. Aqui. Você pode ver aqui que estou imprimindo o valor do mestre Sócrates. A próxima todas essas linhas que são impressas dez vezes é esta. Estou imprimindo. Então, inicialmente, nenhum cliente está lá. Portanto, essa condição não será satisfeita. E, portanto, uma vez que isso será satisfeito apenas o evento que é uma conexão com o cliente e esse valor será maior que 0. Mas, desde agora, um cliente semelhante organizado está se conectando, não lançamos nenhum cliente e , portanto, isso não o satisfará na verdade. E, portanto, estamos recebendo dez vezes esse sprint na verdade agora e estamos recebendo, neste momento estamos recebendo antes de selecionar na verdade. Você pode ver que a função select é chamada. Mas não estamos recebendo essa mensagem. Por que não estamos recebendo essa mensagem porque ela está esperando por tempo infinito. Na verdade, ele vai esperar e você tentar lançar o prazo. O cliente se conectará ao mesmo tempo de número de porta. Na verdade, ele continuará esperando e você não receberá esta mensagem impressa. Então, dependendo de como você o usa, se você for dado, você tem apenas trinta segundos, então ele verá se o ar até verá se o ar até esse momento você lançou algum cliente, se você não tiver conhecimento e o o tempo limite expirou, segundos de festa ou mais, então ele simplesmente retornará, na verdade, a partir desse ponto, na verdade, ele não será lido e você receberá essa mensagem impressa. Mas como estou mencionando esse último argumento é nulo, portanto, ele está esperando e aguardando até que ele obtenha uma conexão com o cliente. Portanto, você pode ver o motivo pelo qual eu exibi essa mensagem para apenas fazer você explicar. Agora vamos para esse dominante. Agora vamos lançar o cliente na verdade, isto é, eu não sei, eu não devo escrever nosso programa cliente I insulina. Para se conectar ao servidor. Você sabe como se conectar. Eu vou abrir um novo terminal na verdade, e então esse terminal eu direi que realmente faça o número da porta. Então, neste lado, o que está ouvindo o número da porta? 88884 vezes oito. E, portanto, vou, no próximo dominante, simplesmente Telnet no mesmo número de porta. Isso significa que o cliente está se conectando à luz lateral na verdade. Então vamos ver, uma vez que os direitos do cliente se conectem ao servidor, o que acontecerá. Então você pode ver aqui que recebemos esta mensagem de exibição. Então deixe-me abrir mais um. Dominante. Isso é diferente ou militância ao domínio. Dominance é sinal possível e um dominante, tentarei me conectar ao servidor. Então essa será essa linha. Então, portanto, você pode ver aqui, e o que vou fazer, vou mencionar esse anfitrião local. Aqui. Eu lhe darei o número da pesquisa. Suponha que eu te dê dessa maneira. Telnet deve se conectar ao host local, na verdade, já que estamos fazendo essa comunicação no mesmo sistema em si e, portanto, não estamos usando para laptops e estamos nos conectando usando na mesma máquina host. E, portanto, eu dei o loop e vai diabetes será o mesmo sobre o cliente n ter o mesmo endereço IP e estamos ouvindo isso quatro vezes oito na verdade. E, portanto, rho, esse número de porta que estou dando a este nó esportivo em si. Uma vez que tentei me conectar realmente do lado do cliente, o que eu tenho no console de linha, tentando de um a 7 pontos, um conectado ao serviço local baixo, conectado ao host local que está conectado ao servidor. Porque minha prata está no anfitrião local. E esta mensagem de confirmação que é enviada do servidor. Portanto, essa regra enviou esta mensagem lado a lado. Vamos ver o que está acontecendo no lado do servidor. Você pode ver aqui. Agora, até esse ponto, na verdade eu tinha um controle, e muitas vezes eu tento me conectar do lado do cliente. Estou recebendo todas essas mensagens impressas no lado de nossos sites. Então, agora o que acontece desde que estamos tentando iniciar o cliente e ele está tentando se conectar ao servidor. Portanto, isso, isso. Portanto, como há alguma atividade na massa por soquete dessa placa, a função select retornou a massa modal apropriada descrita por soquete para fins de leitura. E, portanto, há uma nova conexão que temos com que mensagem é essa? Você pode ver aqui. Recebemos essa mensagem depois de selecionar, na verdade, e essa condição é satisfeita. Ou seja, essa condição é satisfeita porque isso está definido, esse soquete do servidor está triste porque um cliente está tentando se conectar. Portanto, vamos expor e obtivemos o descritor de soquete do cliente. E então estamos simplesmente imprimindo esta mensagem no lado prateado, é uma nova conexão, uma nova conexão online soquetes. Então, estamos imprimindo essa mensagem e estamos enviando essa mensagem realmente para essa linha. Essas mensagens, qual delas? Esta mensagem para isso é esta mensagem que eu lhe disse. Agradecimentos. E a partir desses, você pode ver aqui, estamos enviando esta mensagem aqui do site do servidor. Em seguida, estamos imprimindo essa mensagem no solo do lado do servidor. Então, basta voltar para o console, na verdade, você pode ver aqui, portanto , esta mensagem, isso é apenas print f, que eu dei na mensagem de confirmação do site do servidor. E então esta é a mensagem que isso já está enviando. Na verdade, quando chamamos a mesma função do programa do servidor, essa mensagem será enviada aos clientes. Então, no lado do cliente, você pode ver as mensagens recebidas. Você pode ver como o lado, ao passo que nos comunicamos com essa linha, como a mensagem recebemos dos dados no servidor do cliente disse, agora, a segunda coisa que veremos, agora, temos simplesmente o descritor do soquete do servidor no banco de dados. E vamos fazer atividades no soquete do cliente. Na verdade, vamos escrever alguma mensagem e vamos ver, na verdade, agora como ela adicionará o descritor de soquete do cliente à leitura de ideias e como vamos monitorá-la realmente para fins de leitura. O que faremos, qualquer mensagem que damos aqui no lado do cliente, eu disse que quero, estarei imprimindo no próprio cliente. Então, suponha que eu esteja dando aqui, então babá, esta mensagem, uma vez que eu entrar, na verdade, esta mensagem será enviada para o lado do cliente. Na verdade, portanto, alguns dados estão disponíveis no soquete do cliente, que deve ser lido. Suponha que eu pressione Enter, você pode ver que eu tenho tsunami, um código no mesmo site do cliente. Então isso é o que eu queria explicar, que estou escrevendo alguma mensagem no soquete do cliente. De um lado, escrevo a mensagem apenas no soquete do cliente. O que acontecerá? Vamos vir aqui. Neste ponto. Você pode ver aqui, uma vez que o controle vai aqui, na verdade, novamente, o controle vem aqui já que inicialmente isso, essa condição não será satisfeita porque não estamos adicionando o soquete do cliente para ler FDA. Mas nós conseguimos realmente esse valor, mas na verdade há clientes 0 estarão tendo descritor de soquete antes que seu cliente para ele será valor diferente de zero para esta condição será satisfeita e nós somos adicionando este soquete de linha realmente descritor neste IVS de leitura. E, portanto, agora podemos monitorar, na verdade, porque também estamos adicionando esse soquete de linha nesse leitor via descritor de soquete. Uma vez que esta função de seleção estará aguardando na verdade, leia a FDA terá dois descritor de soquete, um descritor de soquete para esta linha de produtos descritor de um soquete. Agora, desde que nós, uma vez que escrevemos a mensagem, na verdade, no lado do cliente será digitada e a mensagem no cliente como conhecimento nisso é o que acontecerá. Algo está morto no soquete do cliente. Nós escrevemos um pouco estranho, acho que algo no soquete do cliente na verdade é tão deco, devemos lê-lo. Havia algumas atividades na linha, propósito de utilidade e, portanto, essa função de seleção retornará na verdade. Portanto, essa condição, uma vez que ela será verificada, ou seja, cada conjunto, este descritor de soquete não será criado neste vídeo ds, como eu disse após a função de seleção chamada, então nesse caso ele retornará com apenas os descritores que já estão prontos para fins de leitura agora devem estar não fazendo nada no soquete do servidor. Estamos escrevendo no soquete do cliente e alguns dados são aqueles no soquete do cliente que deveria estar vermelho. E eu coloquei essa condição não ficará satisfeita. Sim. Então, o que acontecerá? Então este for-loop está morto fora dessa condição e, portanto, estamos novamente verificando que este loop for iterará, na verdade, será tanto tempo. Portanto, esse soquete de cliente a partir de zeros, então sabemos que apenas um cliente está lá e, portanto, esse será um valor diferente de zero. E, portanto, estamos verificando se o FD está definido se você está verificando se alguma atividade, se este descritor de soquete de cliente é presidente ler um VS. Sim, está morto nessa mulher porque você está, você está certo. Você escreveu algo nesse soquete de linha que deveria ser vermelho. Portanto, esse vídeo foi retornado. Na verdade, é n. Esse valor é modificado com o descritor de soquete ou aplicando, isso significa isso. Então, descritores de futebol cego presentes neste no VS na verdade, porque isso será modificado depois de chamar a função select com os descritores que estão prontos para fins de leitura. Desde agora, a atividade é feita no nível de aplicação apenas o cliente de dívida é uma bactéria ativa e isso será verdade. E nesse caso você receberá clientes de classificação de qualidade é dito esta mensagem que você estará recebendo em que site e o que você está fazendo realmente aqui. Você tinha lido essa mensagem, você está chamando a função de leitura. Seja qual for a mensagem que você recebeu. Então eu escrevi apenas como no soquete do cliente. Então essa mensagem será que estou coletando no buffer. Na verdade, isso acabará com essa mensagem. E desde que a obrigação seja bem-sucedida. Se a condição for satisfeita e essa única mensagem que estou tentando enviar. Então você pode ver que estou chamando a mesma função e este é o descritor de soquete para essa linha. Estou enviando a mesma mensagem para este soquete do cliente. Estou enviando esse tsunami. Como esta mensagem que estou lendo do soquete de linha escura é estou coletando no buffer e estou analisando a mesma mensagem chamando a mesma função. Essa é a razão pela qual estou ecoando. Portanto, vou chamar a mesma função. Isso significa que estou enviando a mesma mensagem para o cliente e recebo esta segunda mensagem para ser impressa aqui. Espero que você tenha entendido toda a lógica. Na verdade, usando a função select, como você pode ter um controle, quanto tempo precisa ser. Se você quiser esperar apenas dez segundos, trinta segundos, você pode simplesmente alterar esse valor. Isso é apenas para explicar como você pode ter a viabilidade de mudar o tempo, como você pode controlar realmente a quantidade de tempo. O select. Mais uma vez, espere, Na verdade, se você quiser segundos de festa, você também pode esperar por esse tempo. No entanto, programação de metas tudo sobre. Então eu vou. Então você comeu tudo. Vamos ligar para sim. Terminamos com toda a redação do programa e executamos o inglês para alcançar a comunicação celular multinuvem. Também mais uma coisa de amigos. Deixe-me também mostrar o lançamento, lançar outro terminal, na verdade, apenas um segundo. Sim. Este foi apenas um cliente ou suponha que estou tentando me conectar. Estou abrindo o terceiro terminal. E novamente, a mesma coisa. Isso também é isso também, sim, Eu estou tentando lançar um segundo cliente. Isso foi o que os clientes poetas. Assim, você pode ver três terminais ou servidor de porta de terminal, um cliente de propósito comum e o segundo é possível um dominó. O segundo pulmonale é formado antes de seu cliente e para o segundo plano. Então, suponha que eu esteja fazendo essa fonte. Novamente, ele tentará enviar, novamente este cliente enviar uma solicitação, solicitação conexão para o servidor, então o lado aceitará, na verdade, N enviará uma mensagem de confirmação para o segundo cliente. Na verdade, você pode ver a confirmação enviada do servidor. E suponha que eu mensagens, olá, mensagens , olá, mensagem de boa noite será novamente um código para o cliente. Estamos digitando-os, eu digo, olá. Você pode ver quantas mentes de pessoas eu conheci TO. Agora chegando. Agora, terminamos com toda a redação do programa e executando usando o select. Para obter a comunicação com o servidor de várias linhas, você pode ver como é possível selecionar isso. Agora, na próxima sessão, veremos essas coisas na verdade, o que todas as coisas estaremos cobrindo. Só um segundo. Sim, vamos cobrir o que é o soquete sem bloqueio. Então, antes de tudo, como eu disse, não devemos seguir a abordagem de criar um fio para cada avião, que a Rights Clinic, nós a vimos decidir uma página na sessão anterior. Então, em vez disso, podemos usar a função select. Eu também escrevi o programa que também é outra maneira para alcançá-los, eu recuso a comunicação por satélite e é por isso que você está fazendo o soquete é sem bloqueio, bloqueando que nós iremos estar vendo na próxima sessão. Além disso, você verá a diferença entre as duas abordagens. Ou seja, para obter uma abordagem de comunicação multi-cliente-servidor, como usar a função select. Já vimos como alcançar quais são as vantagens e também a diferença entre o soquete sem bloqueio para que vejamos você no octeto cobrindo o que é soquete sem bloqueio no na próxima sessão , veremos a diferença quando usar o Select, quando usar o não-bloqueio. Então, todas essas coisas estarão cobrindo qual deles usar quando selecionar em um soquete de queda, todas essas coisas estarão cobrindo e como fazer o soquete não bloquear o que eu vou explicar. Outra sessão dedicarei para escrever o programa e executá-lo usando soquetes sem bloqueio. Então, desde então, estaremos cientes de como fazer um soquete não bloqueador. Também escreveremos um programa e executaremos no Linux usando a linguagem C. Fazer o soquete não bloqueia. Então, todas as coisas que abordaremos na próxima sessão. Por favor, esteja pronto para a próxima sessão. Obrigado por agora. Obrigado. Não são amigos. 25. SocketSession14 Session14 fazendo socket como o SocketSession14 Comunicação de SocketSession14: Olá amigos. Hoje vamos ver como tornar o soquete como sem bloqueio para alcançar o sistema operacional multicolorido Server e Linux usando a linguagem C. Antes desta sessão, vimos uma abordagem diferente para alcançá-los e a comunicação do servidor cliente. E isso foi usando a função select e vimos por ela é usado, bem como os detalhes sobre isso também, escrevemos o programa e executamos o sistema operacional de enfermeira. Agora vamos ver a abordagem diferente para tornar o soquete não bloqueador para obter a comunicação de servidor de várias classes. Então, vamos ver os tópicos que abordaremos nesta sessão completa hoje. Vamos ver o que é o soquete sem bloqueio. Em seguida, a diferença entre as duas abordagens para alcançar a comunicação do servidor anticlines. Essa é a diferença entre a função Select e, em seguida, os soquetes sem bloqueio. Então, desde que vimos como usar a função select e o programa, bem como a execução dela. Agora, aqui nesta sessão, veremos o soquete sem bloqueio. Então, uma vez que este tópico de soquete sem bloqueio seja abordado e cobriremos isso, a diferença entre função basílica e o soquete sem bloqueio. Então, a próxima coisa vamos cobrir qual deles usar. Vamos ler. Então. Temos que usar a função select. Tudo o que temos que usar o soquete sem bloqueio e o fim de semana masculino. E mesmo neles. Então, veremos como fazer com que o soquete seja sem bloqueio. Veremos o exemplo. Estes são os tópicos que abordaremos e lançaremos e nos deixaremos fazer um a um. O primeiro é os soquetes sem bloqueio. Então, o que esse soquete sem bloqueio torna o soquete sem bloqueio? Verificaremos se o evento ocorreu. E se sim, então ele processará em um outro momento , ele retornará imediatamente sem completar e, portanto, as células e o propósito do soquete não bloqueador. Por essa definição, isso significa que ele estará verificando você e escolher o soquete não bloqueará. E suponha que estejamos chamando a função, então, nesse caso, ela levará a função será chamada independentemente de os dados estarem presentes ou não. Ele retornará imediatamente. Portanto, os dados infantis são bem presidentes e eles os lerão e retornarão depois de ler os dados. Mas os dados não estão presentes no soquete que você fez isso como um não-bloqueio. Ele não aguardará pelos dados. Ele simplesmente retornará uma hora de dormir, então ele retornará imediatamente. Então você pode entender sempre que fizermos o soquete como sem bloqueio, não devemos fazer isso. Nós simplesmente devemos agir imediatamente. Então, retornará imediatamente que se trata de fazer o soquete como sem bloqueio. Então, veremos o que podemos alcançar fazendo com que o soquete seja sem bloqueio. Então o exemplo realmente é o mesmo, um exemplo que eu lhe dei agora, ou seja, se você fizer o soquete não bloquear e se você chamar o V, e se esses dados no soquete, ele o lerá. Mas se não um número inteiro retorna com êxito, incorpore os dados. Isso não é dado, então ele retornará imediatamente sem esperar que os dados cheguem. Então isso só M explicou agora, espero que você tenha entendido agora, qual é o propósito de fazer o soquete é não bloqueador. Quais coisas podem ser alcançadas? Então? Ele também retornará, e esse é o erro, uma vez que não há dados no soquete e você está chamando a função, não há dados. Então, como um comportamento é que não é suposto ler, então o dipolo ele retornará imediatamente. Portanto, você pode entender que tem, já que não há dados que não foi possível realizar a leitura na verdade, sem encontrá-lo retorna imediatamente e ele retornará o erro. Isso é E bloquearia pois a auditoria pode retornar mais tarde como a mesma. Ou seja, novamente, o que essa flecha significa? Isso significa que a chamada de leitura teria blogado, mas é roteirizada, foi colocada no modo sem bloqueio e vi você que eu apoio para chamar a leitura do às vezes. Então. Espero que você tenha entendido esse significado desse erro. Isso significa que a função de comer chamada madura poderia ter sido a chamada de encaixe realmente é. Mas você, você, já que você está fazendo o descritor é o modo sem bloqueio, na verdade, antes retornar esse aaron pelo ditado que poderia ser uma chamada de bloqueio porque você pode entender que não há dados, e, portanto, se não houver dados, deveria ler. Mas como você está fazendo o soquete não bloqueia. Está dizendo que você ainda fez este soquete não bloqueador. Portanto, não esperou nem um pouco por ele, retornou imediatamente. Isso significa que você deve chamar a função de leitura depois algum tempo para que, quando você ligar depois de algum tempo, isso possa acontecer. Isso e hora de dormir presente no soquete. Então foi assim que conseguimos as coisas, na verdade, no caso de tornar o soquete não bloqueador. Então você pode entender o comportamento. É assim que ele executa a funcionalidade quando você faz com que o soquete não seja bloqueado. Então, espero que você tenha entendido qual é o propósito de tornar o soquete não bloqueador e como ele se comportará. No caso da função select. Qual era a função de seleção de caso ME deveria evitar o envio de todos os descritores que queríamos monitorar, e B estava dando o tempo limite desse prazo até que horas deveria ser. Se alguns dos soquetes estiverem ativos, Pronto, pronto para leitura, já pronto para escrever. E nesse caso, ele retornaria o número de, devolveria esses soquetes e você executará a operação imediatamente. Dentro desse período de tempo de Sócrates não se tornaria ativo, então ele não retornaria nenhum dos soquetes e operação teria sido executada no caso da função select. Portanto, é como, dependendo do tempo limite, você pode controlar a função select. Que quantidade você tem que sangrar na verdade, e seja qual for o resultado se houver dados ou se não houver dados, mas expirarão. Depois disso. Eu monto, na verdade. Mas, neste caso, você pode ver que ele retornará imediatamente se você fizer esse soquete não bloqueador. E se não houver dados, eles retornarão com esta edição. E novamente, você pode chamar a função de leitura e você pode simplesmente verificar se a defesa está presente e, se sim, ela refez e retornou. Caso contrário, ele ainda retornará imediatamente novamente, basta chamá-lo de intervalos de tempo. Você pode chamar a mesma função de leitura. É assim que isso se comporta quando você faz com que o soquete não seja bloqueado. Espero que sim. Você entendeu a diferença. Vamos ver. Agora, o exemplo que eu expliquei que você faz chamando a função de leitura se você fizer o soquete é o modo sem bloqueio. Agora, no caso do Unix, na verdade, se for um sistema operacional Unix ou Linux, o erro que pode ocorrer na verdade quando não há dados no soquete pode ser um dos blocos. Considerando que se for ruim como é, se for um sistema operacional de janela e Beanstalk você está usando. Nesse caso, o erro se não houver portão no soquete será desse tipo, ou seja, xilogravura W SAE. Portanto, isso é apenas uma diferença entre as setas no caso dos berliners, bem como do sistema operacional Windows. Então, agora você deve verificar o código de erro que é o número de erro no unix. E se for o Windows, então você deve ver pelo WAC, se perder a função de erro. Você pode simplesmente continuar com outras tarefas e voltar depois para ler o soquete. Mas se for qualquer outra área de soquete, então você tem que lidar com isso. Então, é o mesmo, mas no caso de você encontrar o soquete não bloqueia. Portanto, se não houver dados presentes no soquete e ainda assim a função de leitura for chamada. Nesse caso, ele não retornará imediatamente e lançará o erro. Então, melhor, você saberá que você deve chamar a função de leitura novamente. Enquanto isso, você pode realizar outras tarefas. Portanto, dessa maneira, ele não tornará seu programa como bloqueio. Você pode Eddie com alguma outra pergunta, seu programa não será escalonado. E você também pode terminar se for qualquer outro erro. Se não for essa edição, na verdade, que está especificando que, se for outro erro, então você terá que lidar com isso. Ou cada tomada em caso de local atende o soquete não bloqueia. Isso é tudo sobre o não bloqueio. Agora vamos ver o outro tópico nesta sessão que é a diferença entre a função select e fazer com que esse soquete não seja bloqueado. Essas diferenças estaremos vendo. Então você pode preferir arrancar a chamada da função select para obter uma comunicação com o servidor de declínio. Então, o que acontece? Primeiro de tudo, as coisas que isso exigirá. Aprender alguns novos conceitos na verdade, bem como escrever de 20 a 25 linhas de código. Então, vimos quando usamos a função select no próprio programa na sessão anterior, podemos ter visto que precisamos aprender alguns novos conceitos, como conjunto vazio na verdade e macros modais são usadas, o que todas as funções são usadas e o que devemos fazer. E há linhas, essas linhas de código padrão que temos que escrever quando usamos a função select que é obrigatória. Caso você faça os dois, soquete não bloqueia quando você não usa select e faz com que esse soquete não seja bloqueado. E nessa abordagem, o que é isso? Em primeiro lugar, envolve menos eventos esportivos que fazemos com que o soquete seja sem bloqueio. Isso envolverá um show adulto com pontuação de lead você no programa na próxima sessão também verá um exemplo simples. Faça três linhas de código para obter o não-bloqueio. Mas você escreverá um programa corretamente e nós o executaremos na próxima seção, veremos que envolve menos código. E você precisa modificar seus testes e os erros adicionando o teste para um xilogravura e E novamente, então o que você deve fazer. Aqui, quando você faz o soquete não bloquear. Primeiro de tudo, envolverá menos código e você terá que apenas adicionar o teste. Na verdade, há um erro. Ele bloquearia e EOG e, em seguida, você precisa adicionar algum código para isso. Na verdade, é que você pode chamar a mesma função novamente, há outras setas, então você tem que lidar com isso. Isso é realmente considerado em relação às linhas do código. Há mais linhas de código e função de seleção, mas menos linhas de código em soquetes sem bloqueio. Se você quer dizer que o soquete não está bloqueando, então a próxima diferença é que quando você usa a função select, temos que escrever de 20 a 25 linhas de código. Certo? Então podemos usar, podemos novamente reutilizá-las alterações mínimas e mínimas, a fim de gerenciá-los vários soquetes que vou manter os sócrates, então você precisa adicionar mudanças muito pequenas em para gerenciar os vários soquetes. Então, como você já escreveu 2225 linhas de código para a função select podem reutilizar as mesmas linhas de código. Como você precisa lidar com vários soquetes, na verdade, são necessárias apenas alterações mínimas. Isso é apenas a coisa que só você precisa escrever essas linhas de código e as alterações sempre que você modificar, isso não estará em sobrecarga. Ele será apenas com alteração mínima no caso quando você usar a função select. Melhor no caso do soquete sem bloqueio, você precisa personalizá-los para lidar com cada um dos soquetes para diferentes soquetes diferentes. Você teria que lidar com eles na verdade, e o comportamento deles também pode ser diferente. Ele pode lançar setas diferentes para que você tenha que lidar com elas. Então, isso é coisa que você precisa fazer no caso dos soquetes sem bloqueio. Mas isso é gerenciado quando você usa a função select. Depois de escrever essas linhas de código, se você precisar modificar, serão necessárias alterações mínimas. Agora, a outra diferença realmente pausa select. O código será coletado em um só lugar no seu código, enquanto o código para suportar o cozimento do soquete é sem bloqueio será distribuído por todo o seu código. E isso é complicado manter o código para que você possa entender onde esta descrição é o que ele está dizendo. Ele está dizendo que sempre que você estiver usando select em um só lugar, você pode reunir todo o código necessário para que ele use a função de seleção. Mas quando você prefere uma abordagem diferente para tornar o soquete não bloqueador, essa abordagem você prefere, nesse caso, em todo o programa, seu pedaço de código será distribuído. E isso também pode complicar a manutenção do código quando seus soquetes brutos aumentam. Na verdade, nesse caso, isso pode complicar a manutenção de todo o programa. A próxima coisa, na verdade, qual deles usar quando e se deve usar, selecione se deve usar sem bloqueio quando usá-los. O anúncio tem a importância deles. Vamos ver. Primeiro, podemos escolher uma abordagem se você quiser centralizar o manuseio em declínios e testar e lidar com eles ao mesmo tempo. Este é o caso quando você deve preferi-los. Enquanto você pode ir para a abordagem de soquete sem bloqueio se quiser que a lua distribua uma abordagem bonita. Isso ocorre porque essas são as coisas quando você escolheu o primeiro select quando deve relatar que o soquete não está bloqueando. Qual é a necessidade do menu Selecionar deve usar o Select que veremos. E então, quando você deve usar um não-funcionamento que veremos aqui neste tópico. Então, antes de tudo, desnecessariamente do select. Então, quando escrevemos a prata, sabemos que devemos estar prontos para reagir eventos da mídia que podem acontecer com o servidor. Esses até mesmo scanner, bom. Estou enviando a solicitação para que o servidor possa identificar e desconectar, ler e escrever. Todos esses eventos acontecem quando o servidor é iniciado. Como essas chamadas estão bloqueando, lendo, escrevendo todas essas chamadas que bloqueiam processamento explica o que qualquer uma delas é. Na verdade, dois outros eventos serão até que o processamento no mesmo atual seja concluído. E assim a necessidade de selecionar ocorre o que está dizendo. Ele está dizendo suponha que desde que lançamos este serviço não haverá rede pode ser eventos diferentes ocorrendo na verdade, suponha que alguma leitura esteja acontecendo. Nesse caso, o servidor está ocupado processando a leitura e não há data, bloco de título, outra parte do seu programa será carimbada. Não será capaz responder a outros eventos que realmente estão acontecendo. Então, isso é o que acontece na verdade. E, portanto, nesse caso, você precisa se referir usando a função select. Então essa é a coisa que estou mencionando aqui, ou seja, esse select é necessário. Qual é essa necessidade de usar a função select? Isso não é necessário. Podemos evitar o bloqueio, na verdade, você também pode processar outras tarefas. Você pode usar a função select e para evitar bloquear seu programa. Então, também, em selecionar o que damos damos a lista de chamadas de encaixe para monitorar. Sim. E isso bloqueará o tempo todo. Qualquer pessoa em uma chamada de bloqueio fica pronta. Essa seleção não será bloqueada uma vez que já causou um. Então você pode entender o que estamos dizendo. Você está dizendo que, você sabe, deixando selecionar estamos dando a este cão descritores soquetes, soquetes, descritores que estamos dando que estão listados nos soquetes. Que temos que monitorar para ler ou escrever na verdade. Então, o que acontecerá? E você está dando o valor do tempo limite. Portanto, o valor demoed que sabemos é usado para controlar quanto tempo a função select deve ser. Dependendo do valor que você está dando. Um tempo limite, ele retornará imediatamente, auditoria retornará, ela receberá quatro independentes. Eu ainda sou uma nova atividade acontece, na verdade, nos soquetes que você deu. Você tem um controle. Na verdade, o que você deveria fazer. Isso é sobre o select. Então, o que é desnecessário no soquete sem bloqueio por este fornecedor é que o soquete sem bloqueio é necessário. Então, suponha que pela codeína selecionada, o que acontecerá? Você receberá uma lista do evento pronto que deve ser processado após a chamada selecionada ser concluída. Quando receber alguns dos descritores de arquivos que estão prontos, ele retornará os dois. Vou descritores que já são, nesse caso, o que acontecerá? Isso pode acontecer no momento em que o servidor e faz a chamada. Vamos supor que uma extensão do soquete que você teria dado na função select esteja pronta para leitura. A função select retornará esse descritor para você. E você pode simplesmente processar simplesmente chamando a função de leitura, já que você sabe que esse soquete pronto para leitura funcionalmente, mas deixe-me dizer que está presente nele. Essa situação do tempo em si pode ter mudado. Esse é o cliente que envia os dados, ele pode desaparecer antes de tentarmos ler, antes que você esteja executando a liderança. Na verdade, naquele momento, a situação mudou com este cliente enviando os dados pode desaparecer. Veja, você sempre pode prever o que pode acontecer. Vamos supor que o cliente esteja enviando alguns dados para o servidor. O servidor está tentando lê-lo no meio. Somente. Algumas leis de conexão foram desconectadas e os dados, portanto, uma nova, não atuação pode ocorrer sempre que não podemos prever. Não só nesse caso o que acontecerá. Ele estava se comportando corretamente. Ele retorna descritores que, que se tornaram ativos, na verdade, nos quais você precisa processar a funcionalidade de edição. Bênção. Mas naquela época apenas alguma situação ocorreu devido ao declínio foi desconectada. E esse cliente estava enviando os dados no soquete que o servidor deveria fazer. Nesse caso, finalmente, a leitura não acontecerá. Nesse caso, você pode preferir escolher o soquete não bloqueando. Então, essa coisa não conhecemos Mia e liberamos essas coisas que não sabemos quando isso pode acontecer. São coisas imprevisíveis que para cima e esse fim resultam em resultados imprevisíveis. Nesse caso, é relatório usar essa abordagem para atender ao soquete não bloqueador. Então, porque sabemos que , então, fazemos com que o soquete seja sem bloqueio. Então, suponha que você esteja chamando a função de leitura. Nesse caso, a função de leitura será chamada e, se houver dados presentes nela, ela a lerá e retornará com sucesso. Mas se não houver dados presentes nele, não há problema, ele ainda retornará imediatamente e lhe dará, ambos estão dizendo que, como os ricos deveriam ter se tornado a chamada de bloqueio porque não há dados presentes nele. Mas ainda assim você fez o descritor, já que ele ainda fez com que o soquete não seja bloqueado. Agora seu suporte, é chamado função de leitura novamente depois de algum tempo, você chama a função de leitura novamente. Se não houver dados, ele retornará imediatamente. Mais uma vez. Você chama a função de leitura. Se houver dados, ele lerá os dados e retornará. Então é assim que o menu não, é assim que ele se comporta significa que o soquete está sem bloqueio. Então, isso é tudo sobre. Então, esse é outro exemplo. Na verdade, se fizermos a chamada de aceitação S sem bloqueio, então deveria ser que eu estou fazendo o soquete não bloquear e estamos chamando eles, exceto função, exceto que acontece antes de tudo na calçada. E sempre que houver uma conexão da linha. Portanto, o senso de linha da solicitação de conexão no caso de o servidor de servidores exibir conexão. Mas como você está fazendo o soquete não bloqueia e essa é a chamada de aceitação. Tudo nesse índice e neve embutida e na verdade não enviando nenhuma conexão e ainda aceitam essa chamada. E essa aceitação é sem bloqueio porque você está fazendo com que seu soquete seja sem bloqueio, então qual será o comportamento? Ele retornará imediatamente. Assim, você pode entender, na verdade, que, exceto este lado, não há linha enviando a solicitação para o servidor ainda aceita. Isso significa que não há conexão lá e ela retornará imediatamente. Não será para a solicitação de conexão. Ele não bloqueará a obtenção de seu programa para conexão de flexão. Ele retornará imediatamente. Mesmo que não haja conexão, ela retornará imediatamente. Ele não vai esperar, mas dá o erro realmente como o bloco maligno apenas novamente dizendo que, exceto poderia ter sido o bloqueio porque como não há conexão, ainda assim você fez o soquete não bloqueia e, portanto, tem que retornar imediatamente. Então você deve chamar a função de saída depois de algum tempo. Este é o uso que na verdade, você fez com que esse soquete não seja bloqueado. Você tem que se comportar dessa maneira. Então é assim que funciona. Agora, estaremos libertando. Essa coisa realmente estará escrevendo o programa no item na próxima sessão e nós estaremos executando. Vai ver como fazer com que o soquete não seja bloqueador e veremos sua execução. É assim que, na verdade, você pode saber que o tópico é, como fazer um soquete é sem bloqueio. Então, é assim que você consegue fazer com que seu soquete não seja bloqueado. Você precisa ter um softball, usar a chamada do sistema FFC e TL. Você precisa executar essas chamadas de sistema FC e TL ou o que é essa função f, c e d l. Ele executa as várias ações em descritores abertos. Descritores são seus descritores de soquete aqui. Assim, ele executa várias ações no, no descritor de soquete aberto é o descritores de soquete micelle open ele executará várias ações, como obter, alterar o atributos de um arquivo no descritor de soquete. Então, o que ele pode fazer, duas ações que ele pode executar atributos apelativos de Nick dos descritores de soquete estão alterando os atributos dos descritores de soquete. Até agora, os descritores de soquete, você pode entender que ele pode ser diferente nas revisões. Então, suponha que você tenha que fazer com que o soquete não seja bloqueado, então há um quad. Você pode alterar esses atributos dependendo do requisito na verdade. Então você perguntou sobre simplesmente chamá-los FC e negociar para que o soquete não seja bloqueado. Então você verá abaixo como usar esse FC e TL. É assim que você usa. Primeiro de tudo, você dará o primeiro argumento como uma descrição. É um descritor de soquete em que você tem dois no modo de ação. E o segundo argumento você dará o comando. Então, o que Amanda, Você tem que dar, dependendo do requisito, o que você quer realmente no soquete para executar esse comando que você vai dar e as linhas que você pode entender isso pode tem vários argumentos aqui. Isso é o que é suposto fazer, e este é um exemplo, na verdade, pós-operatório. O que estamos fazendo se você tiver que fazer esse soquete não é bloqueador, chamando esse sistema de funções chamado f, c e d l. E estamos passando o primeiro argumento como um descritor de soquete. E o segundo é um comando. Então, vimos esqueleto deixar essa força ser o descritor de soquete e o segundo estará entre os quais você deseja executar a ação. Esses três argumentos, é opcional para você. Aqui estamos dando esse comando. Queremos que isso venha, venha a executar no descritor de soquete. E, novamente, você está chamando a mesma função. Você está passando o descritor de soquete e você está dando isso, você está chamando essa função, você vai, você está dando esse comando nela. Você quer definir, na verdade essa coisa no descritor de soquete. E como esses três pontos, mencionados aqui, são opções. Então, aqui, você tem que fazer dar a bandeira diz não-bloco. É assim que essas duas linhas de código que você precisa escrever quando faz com que o soquete não seja bloqueado. Eu afirmei em qual é o propósito desse comando? Obtenha o preenchimento. Ele obtém o sinalizador aberto ou adota esse script. E a FCA até ler, retornará esses resultados. Isso obterá a fonte. No entanto, o que essa deficiência visível faz, na verdade, este comando fará, ele abrirá o descritor de soquete e retornará esses X como resultado, na verdade, então esse sinalizador será retornou. Este é o propósito desta gama e a SEC FL vem. Amanda somos nós para ficar bandeira de status. O que o descritor de soquete para tornar o soquete não bloqueia. Você pode usar esse sinalizador, na verdade que é sublinhado sem bloqueio. Cinco obsoletos. Você entendeu esse comando específico que é usado para obter os sinalizadores abertos que estão lá para o soquete é invertido e revogado. Retorne isso aqui neste sinalizador e defina-o é usado em j por cento, este script de ordem preta de status. Então você pode usar isso para fazer o seu, ele está no modo sem bloqueio. É assim que conseguimos fazer com que o soquete seja sem bloqueio, bloqueando. Então, vamos fazer uso disso em nossa próxima sessão, você estará escrevendo o programa. Fazer o soquete não é bloqueador para obter comunicação multi-cliente-servidor, embora isso seja tudo sobre fazer com que o soquete não seja bloqueado. Então, todas essas ópticas, nós somos, nós cobrimos, o que vimos aqui. Isso é o que é soquete sem bloqueio. A diferença entre a função select, diferença entre o soquete sem bloqueio. Vimos que quantas linhas você precisa codificar mais no caso de usar a função select em comparação com a do soquete sem bloqueio. Depois de escrevermos o código, podemos reutilizá-lo e a modificação é muito menor se tivermos, se tivermos que gerenciar vários soquetes. Considerando que, em caso de não bloqueio, mesmo que o código seja lista, mas se houver um grande número de soquetes, você tem que lidar com isso, o código, então você tem que fazer mais uma tarefa nisso. Também vimos no caso da função select, quando usar a função select quando usar, faça com o soquete seja o modo sem bloqueio. E vimos que aqui para Instapoll antes, ele será reunido em um só lugar, mas um soquete sem bloqueio, ele será distribuído ao longo de seu curso. É difícil manter se ele se dissolver. Grande número, grande número de soquetes. Estas são as diferenças que vimos também, vimos para fazer o soquete como selecionado. Vimos o que não é necessariamente da função select. Nós vimos. Não queremos que o programa pare por muito tempo. Você pode usar a função select. Temos um controle sobre o tempo limite. Vimos que podemos nos preparar. Fazer soquete é um soquete sem bloqueio em vez de usar quantidade selecionada, vi que a situação pode ocorrer em tempo de execução, nem sabemos que a função select está retornando com os descritores de soquete que estão prontos. Mas devido a alguma outra situação, como leis de conexão, tudo pode acontecer. Cliente que estava enviando dados se ele tivesse, está conectado de alguma forma, faça alguma situação, situação aleatória. Nesse caso, não haverá uma guitarra. A data de dezembro, que estava pronta para realizar a operação de leitura. Como o cliente foi desconectado, ele não poderá ler. Qualquer coisa pode ocorrer a qualquer momento. Portanto, nesse caso, você fez com que o soquete não seja bloqueado para usar quando eu especifiquei. E vimos como fazer o soquete não bloquear. Você tem que dar essa bandeira. As duas funções que vimos, você tem que chamar f, c e d. Então, todas essas coisas que somos, somos largura de banda e na próxima sessão, estaremos escrevendo o programa para atender ao soquete sem bloqueio e vamos executá-lo In denota usando a programação C. Portanto, esteja pronto para a próxima sessão, que será dedicação completa para escrever o programa e executada. Fazer o soquete não está batendo para obter comunicação multi-cliente-servidor. Então, acabei por enquanto, amigos. Muito obrigado. Obrigado. 26. SocketSession15 Session15 de fazer o programa e output como o SocketSession15: Eu pareço amigos que eles estarão escrevendo o programa de soquete ou fazendo o soquete como não-bloqueador, a fim alcançar multilinha disse Bem comunicação e nós também o executaremos no Linux usando o C idioma. Então, antes desta sessão, vimos que dita como tornar o soquete como sem bloqueio. Então, vimos abordagens diferentes para alcançar anticlinas, várias comunicações vimos qual foi o problema na criação do thread para cada cliente que se conecta à salva que são várias desvantagens que abordamos na sessão anterior, de modo a evitar o uso dessa obtenção de um thread. Mas cada cliente, superamos isso usando a função select. Também vimos num, importância da função select bem como vimos os detalhes. Qual é o propósito de usar a caneta de função de seleção para usá-la? E também escrevemos o programa e executamos em sessão anterior. Então, vimos que a abordagem diferente de fazer com que o soquete seja sem bloqueio em vez de usar uma função select. Então, vimos homens usarem a função select quando usar fazer este soquete não bloquear. Vimos todas essas coisas na sessão anterior. Como sabemos, como estamos tendo o conhecimento de como fazer com que o soquete seja sem bloqueio. Eu expliquei antes desta sessão, expliquei qual é o propósito disso? Vamos escrever o programa executar fazendo com que o soquete não seja bloqueado. Então deixe-me descrevê-lo resumindo sobre o modo sem bloqueio. E vamos começar a escrever o programa nas unidades, bem como o executaremos. Vamos começar sobre um soquete sem bloqueio, como descrevi para você na sessão de áudio. Tornar o soquete como sem bloqueio. Isso verifica se o evento ocorreu. E se sim, então ele processará naquele momento em si, pois retornará imediatamente sem aguardar melhorias serve ao propósito dos soquetes sem bloqueio. Então, quando você faz, você sabe que ele seguiu sempre que você cria um modo de bloqueio de soquete, se você quiser fazer o soquete no modo sem bloqueio, temos alguma chamada de sistema que veremos à frente. Mas uma vez que você faça o soquete não bloquear, então como ele se comportará. Deixe-me descrever isso. Nesse caso, suponha que você esteja fazendo seu soquete não esteja bloqueando e você esteja chamando a função de leitura. Você sabe que quando o moinho de operação de leitura, ele reproduz apenas um evento que é um dado no soquete, então somente você pode ser esses dados do soquete. Então dy dt irá acompanhá-lo só será bem sucedido sempre que houver um soquete. Portanto, essa leitura é chamada. E se houver dados presentes neste soquete, ele lerá os dados e retornará e deitará. Mas isso não é dado sobre esse órgão. E você está chamando a função de leitura. E nesse caso, você sabe que você fez esse soquete não bloqueador. Portanto, ele não aguardará pelos dados. Ele retornará imediatamente. Assim, você pode entender independentemente se os dados estão lá ou não lá. Ele não será lido porque você está fazendo um soquete não bloqueador. Você não quer que seu programa fique preso. Você não quer fazer a mão do seu programa e , portanto, você retornará imediatamente sem esperar, então você não vai conseguir, isso é o que conseguimos. O local feito o soquete não bloqueia. Então, o que é que o trabalho acontece nesse caso, não há dados e você está chamando a função. Nesse caso, ele retornará imediatamente e também lhe dará alguns erros, é que os erros descreverão realmente que o soquete você da virtude me você deveria fazer isso como bloqueio. Mas como você fez esse soquete não bloqueia quando os dados não estão melhores, não faça imediatamente. E, portanto, você deve chamar a função de leitura depois de algum tempo. Esse é o comportamento. Isso acontece em tudo quando você faz o soquete não bloquear. Então, todos os detalhes disso eu já expliquei antes desta sessão. O objetivo principal nesta sessão é escrever o programa. Você verá como conseguir como fazer com que o soquete seja sem bloqueio e como executá-lo. O exemplo, na verdade, quando você nega o soquete não bloqueia e quando você chama Amanda Silver, causa a função de saída. Você sabe que esta função de saída, em primeiro lugar, é chamada em ambos os lados. Em seguida, ele é chamado sempre que o cliente está enviando uma solicitação, solicitações de conexão para o servidor e, em seguida, o subúrbio deve supor aceitar essas solicitações de conexão do cliente. No, se você estiver fazendo seu soquete é sem bloqueio. E se você chamar a função de saída no site, se não houver conexão com o cliente, se não houver cliente enviando uma solicitação. E como você fez com que o soquete não seja bloqueado e você está seguindo, exceto a função, ele não aguardará. clínica pendente simplesmente retorna imediatamente para que ele lhe dê o conjunto como eu descrevi. Você sabe que isso lhe dará esse erro? Você bloquearia. Isso significa o que significa que você poderia ter o soquete de mídia como um bloqueio, porque não há ação, em vez disso, você está chamando a função de saída. Portanto, você chama novamente função de saída depois, por isso, portanto, ele dará esse erro indicando que depois de algum tempo cantos sair da função e verificar se há alguma conexão com ela, exceto dependendo do requisito, você pode tentar um tempo definido. Então, isso é o que acontece, na verdade, se você fizer esse soquete não bloqueador. Então, espero que você tenha, agora, vamos ver, na verdade, já vimos na sessão anterior apenas para descrever em breve como fazer o soquete não bloquear. Então, antes de tudo, você tem que chamar isso de F, C e D L, que é um sistema chamado essa função que você, em vez de chamar. E você tem que passar neste formato. Ou seja, você tem que passar o descritivo. Isso estará no descritor de soquete. E o segundo argumento será o comando. Comando. É isso que você quer realmente ser feito neste descritor de soquete, atividade que você tem que mencionar na verdade como um comando no segundo argumento. E esses três pontos indicam que você pode dar mais opções como opcional, na verdade, se você tiver que usar FC e cerceta. E também vimos essas duas linhas de coisas, na verdade, que você deveria fazer e você faz com que esse soquete seja sem bloqueio. Você tem que chamar isso FC e TL e você tem que passar o descritor de soquete e o comando, você deseja obter FL. O que é esse cara que caiu no próximo para o descritor. E retornar esses flexores, sua função é adequada para obter o próximo mesmo deste descritor de soquete, a partir do descritor de soquete que recuperará o flex na verdade, e você pode coletar nesta variável. E então você está chamando a mesma chamada do sistema e o descritor de soquete, mas você está recebendo isso. É F sublinhado set FL. Qual é o propósito desse comando? Ele enviará sinalizadores de status para o descritor. Isso na medida em que ele enviará X, na verdade, no descritor do soquete. E a terceira opção é eu, e isso é opcional. Então, como você tem que fazer com que esse soquete não seja bloqueador, você tem que dar essa oportunidade é muito importante. Você precisa mencionar esse não-bloco porque você quer fazer com que seu soquete não seja bloqueado. Isso é usado na verdade para tornar seu soquete não bloqueador. Então você está dando essa opção como um argumento de saída nela. Então, é assim que você pode conseguir tornar o soquete sem bloqueio. Agora, vamos começar a escrever o programa e executados usando a linguagem C. Então vou explicar as instruções linha a linha e então estaremos executando. Esta sessão está no sistema operacional Windows e no programa que estaremos escrevendo no sistema operacional Linux. Então eu instalei aqui a caixa Oracle Mm. Na verdade, isso me dará a cruz, posso compilar meu programa no sistema operacional Linux. Se você não tem um Linux, você também pode instalá-lo é muito z2 install Oracle estar envolvido, e você pode simplesmente começar a escrever o código lá quando você iniciar que estará envolvido ou caso contrário, se você estiver tendo unidades sistema operacional, você pode simplesmente escrever o programa. Então, vamos começar a escrever o programa. Aquela bola. Deixe-me mudar para o meu sistema Linux. Este é lançado o Oracle VM, e este é o meu sistema operacional, sistema operacional Linux. Então eu faço login. Deixe-me abrir o terminal primeiro. É meu programa. Isso me deixa mostrar o caminho. Na minha pasta inicial. Eu criei esse vazio que, na verdade, dependendo de qual é o propósito do meu problema, mas está vazio. Ele soquetes sem bloqueio recebem esse feixe aqui, e isso é selecionar a programação de soquete usando soquete sem bloqueio. Abriremos o telefone da interface do usuário. Sim. Então aqui este é o meu programa na verdade. Portanto, este é o meu programa de servidor, ou fazer com que o soquete não seja bloqueado. Agora, vamos ver um por um o que estaremos fazendo. Primeiro de tudo, como eu mostrei isso na apresentação em si, o exemplo da função de saída. Então, suponha que você faça o soquete como sem bloqueio e é que sabemos que função XOR é chamada no lado do servidor. Então, se você estiver fazendo com que sua órbita ocular não seja bloqueada e você está chamando a função de saída, ela se comportará devidamente envergonhada. Alguma solicitação de cliente sobre ele. Ele aceitará essa conexão. Então, está tudo bem. Mas e se não houver solicitação de conexão de linha na prata? E já que você está fazendo que esses soquetes de rede não sejam bloqueadores e seu colega, exceto função. Nesse caso, obviamente, mesmo que não haja solicitações de clientes, ele não aguardará os gastos e ações. Ele simplesmente retornará imediatamente. Então, nesse caso, o que deveria acontecer realmente, já que você é o principal objetivo do programa era que ele deveria aceitar a conexão a solicitação de assistência que você não tenha sido padrão clientes, portanto, débito, portanto, não há solicitações de clientes. Portanto, não há dúvida de aceitá-lo. Portanto, você retornou imediatamente. Então, novamente, você pode ligar depois de algum tempo, você pode chamar exceto função ativada. E você sabe que ele verificará novamente se há alguma conexão de financiamento e é melhor, ela retornará imediatamente. Então, é assim que você pode carregar, carregar a mesma atividade novamente de forma independente após algum valor. Faremos a mesma coisa. Este é o código do servidor. Vou explicar a sua linha a linha as instruções. Em seguida, estaremos compilando este programa. Estaremos executando os programas cerebrais. Desde que somos eu. O soquete não bloqueia e chamaremos a função de saída. Portanto, será simplesmente um OT lançando qualquer cliente. Então, quando ainda há estamos chamando textos que funcionam no solucionador. Simplesmente não esperará, ele retornará imediatamente. Outros e dependentes da rede. Visto que cabeçalho podemos novamente falsa função de saída da soma entre o horário do doc. E veremos que é ESNet se ele puder aceitar a conexão envergonhada algumas solicitações de conexão do cliente e, se não, ela retornará novamente imediatamente novamente através de n. Se iniciarmos isso cliente realmente hora de dormir, exceto função é chamada e, em seguida, aceitará os retornos de conexão com sucesso. Isso é o que estaremos alcançando em nosso programa. Você comprou realmente o que estou tentando dizer, mesmo isso será limpo por eu explicarei instruções linha a linha. Vamos ver. Então, suponha que este seja um programa de soquete de servidor e nós sabemos o básico. Na verdade, já vimos como criar um soquete e os detalhes sobre ele, e quais todas as funções são necessárias para usar o serviço, precisarei chamar a função principal. Precisamos também ouvir, na verdade, também precisamos aceitar a conexão pois vamos nos concentrar na função exceto. Agora vamos ver, na verdade, isso é suposto manter esses arquivos de cabeçalho de configuração que você precisa declarar na verdade. E esta é sua principal função. Esta é a sua principal função. Você sabe que, embora esta seja função principal é um ponto de entrada para iniciar uma execução do seu programa. Então, quando o programa for executado, o controle virá na primeira linha da função média, e será executado linha a linha sequencialmente. Então, o que você está fazendo, então antes de tudo, o que é o que devemos fazer? Para fazer você querer realmente criar um soquete no lado do servidor. E queremos torná-lo sem bloqueio. E temos que, sempre que estamos lidando com o soquete do servidor, temos que fazer algum objetivo, algumas funções como temos antes de tudo por servidores de índice soquete para o número da porta, então temos que ouvir no número da porta. E o terceiro que temos que aceitar uma ação realmente chamando a função de soquete. Sabemos que esses três parâmetros, esses são os três argumentos que estamos passando. Ele diz que se sublinhado init for embora o soquete da família de endereços, e este é um tipo de soquete que queríamos, queríamos criar um soquete de fluxo. E esse terceiro argumento é 0. É assim que você cria um soquete e você estará tomando realmente o soquete. Quando você cria o soquete, ele retornará o descritor, o descritor de soquete prata, que eu o nomeei como um soquete mestre, e é do tipo diferente. E você pode ver que eu o declarei antes de usá-lo. Isso é verificação de erros. Se isso for tudo pode obter falhas proteja dessa maneira. Então é assim que seu soquete de servidor Deus criou e este é o descritor para o soquete de sublinhado mestre sem nome do soquete do servidor . Então agora você está, você acabou de criar o soquete. Agora, a próxima coisa é que você tem que fazer com que esse soquete seja sem bloqueio. E nós tínhamos visto quantos conseguem. Vimos apresentação suficiente. Vamos ver. Aqui você pode ver que há um medieval que é declarado aqui. Você pode ver que estamos chamando FC e TL, que é uma chamada do sistema. E estamos fazendo dessa maneira. Então essa chamada do sistema é chamada, na verdade, eu vi até que estejamos usando isso, temos que fazer um soquete não bloqueador. Portanto, soquete de largura temos que fazer o não-bloqueio. Temos muitos. Este soquete de servidor não bloqueia e todo o vetor será o primeiro argumento. Então o segundo argumento, que é que vimos qual é o propósito dessa segunda coisa? Primeiro de tudo, o secundário é um comando que vimos na apresentação e é usado para recuperar o flex que está presente. Então esse sinalizador será recuperado e ele será coletado neste botão de mídia que declaramos anteriormente. Na meningite, uma verificação de erro. E novamente, temos que seguir esse sistema chamado PNB ou vimos isso. E passaremos novamente o primeiro argumento como um soquete, que queremos torná-lo como um soquete sem bloqueio. Esse é o descritor de soquete do servidor. Qual soquete que retorna o nome do descritor do soquete do servidor , portanto, deve revelar o soquete que estamos passando como um primeiro argumento neste sistema lutou. E no segundo em que estamos passando esse comando que é F sublinhado definir o pensamento. Processando esse sinalizador entre a placa, assim como estamos passando essa opção que é o sublinhado não-bloco. Essas são as opções de sinalização. Então, como temos que fazer com que o soquete não seja bloqueador, temos que dar essa opção. Isso é necessário auxiliar deve. É assim que estamos fazendo esse tipo de soquete cujo nome é em massa tende a marcar o soquete S no modo sem bloqueio. Então, estamos dando essa opção e é isso que verificação de erros. Assim, você pode ver como essas coisas são usadas na verdade para tornar o soquete não bloqueador e essas duas linhas são usadas, na verdade, faça as duas coisas na verificação Editar aqui. Este ponto você entendeu, espero que sim. Estou criando um soquete e estamos fazendo isso como um ligado. Agora, a próxima coisa no lado do servidor, o que devemos fazer é que temos que, você sabe, isso é uma estrutura. Estamos tomando isso como um DDR e é dos tipos de dados, struct, sock, ADD ou sublinhado INV, sabe qual é o propósito dessa estrutura? Temos que preencher todos os membros sobre essa capacidade de mídia, DDR. Você precisa preencher com o número da porta DBSPL, a família, assim como temos essa DPLL. Como queremos uma barra lateral inclinada a se comunicar no mesmo sistema operacional, mesma máquina host, na verdade, o mesmo endereço IP antes de darmos esta opção IN ADD ou sublinhado NE. Aqui, você pode ver um por um, essa variabilidade, as médias que adicionamos vinculam os detalhes que estamos dando aos detalhes, estamos preenchendo com esses serviços que abordam a família. Este é um número ímpar para qual queremos que o servidor compre nesse número de porta. E esses são os detalhes do endereço. Sabemos. Qual é o propósito desse íon, de fato, o ARM quadrado uma imagem que eu tenho propósito na minha sessão anterior no soquete, pois queremos que o servidor e o cliente se comuniquem na mesma máquina host, hosts locais. Então, devemos dar isso e quero explicar detalhes na sessão de volume. O treinamento em si. Então você pode ver aqui. Em seguida, chamaremos a função de ligação no soquete do servidor nomeado como master ou podemos ser usados para vincular este soquete de servidor, que é o soquete mestre a este número e também que será passado como um segundo argumento é uma ênfase no ADR, que temos detalhes de filtro aqui. Não pense que o argumento será do tamanho neste ADR. Esta é a verificação de erros. Então, novamente, o que nos faz cair? Nós terminamos com isso. Agora devemos ouvir realmente neste soquete, que é o soquete do servidor. E isso é o quanto da conexão de linha pendente você pode sozinho. Assim, você pode dar qualquer coisa dependendo da exigência. Então, novamente, a verificação de erros é feita aqui. E então você A principal coisa começa A você viu que eu continuo iterando. Na verdade, não continuarei. Será infinitamente e, dependendo dessa coisa, retornará no meio. Este loop while continuará até e a menos que você não retorne esses códigos de pizza. Então você tem que voltar para montar neste meu loop para que você possa ver o que estou fazendo. Você pode ver aqui que estou chamando a função de saída. Como eu te disse. Como estamos, acabamos de fazer o soquete do servidor como sem bloqueio e estamos chamando a função de saída. É eficaz, ou seja, uma solicitação de cliente que não é, não vai esperar. Ele simplesmente o ligará a bordo. Ele aceitará a conexão, retornará com sucesso. Caso contrário, a conexão não existe, nenhuma conexão de plano existe. Ele retornará imediatamente e lhe dará o erro deste metal. Então você pode ver a função de saída é, estamos chamando, estamos analisando o soquete do servidor, massa sem sentido por soquete. E essas coisas. Isto é, isso é o que realmente, e isso dá a você. Isso fornece o descritor do cliente, na verdade, descritor de arquivo. Este é o descritor de soquete do cliente Dr.. Você está verificando, na verdade , este menos um. Então isso lhe dará S menos um. Na verdade. Você verificará diferentes tipos de erro. Indica quando isso não é conexão de cliente, ou seja, quando você não está iniciando o cliente. Obviamente, se você chamar a função de saída e não estiver. Lançando essa linha. Então, obviamente, como ele aceitará a conexão, não há cliente presente e também, já que estamos fazendo o soquete não bloquear. Isso não vai esperar. Ele retornará imediatamente. Então, nesse caso, isso será menos um. Portanto, isso será menos um quando você não estiver bloqueado ao iniciar o cliente e ainda assim você estiver chamando função de saída retornará imediatamente. Portanto, essa condição será satisfatória, ou seja, o aparelho desligado com menos um. E neste caso, você vai para casa cheques diferentes e diferentes. Então você verá o número de edição, que na verdade está desligado, bloquearia tipos. Esse erro virá, na verdade, esse erro significa que você deveria fazer o soquete como bloqueio porque não há conexão com o cliente. E, portanto, nesse caso a exceção deveria ter realmente, mas os EUA, desde que você tinha, você fez esse soquete não bloqueia. Você retornou imediatamente sem esperar pela solicitação do cliente. E, portanto, ele lhe dará esse erro dizendo que a desordem está presente e, portanto, você pode simplesmente neste caso, então depois de algum tempo, isso significa que você, depois de algum tempo você pode ligar a mesma função que é sair. Já que naquela época não havia escalada conectada Newton e cliente de lançamento e , portanto, não havia nenhum plano. Portanto, como isso é eta, você pode esperar por algum tempo e novamente chamar a função de saída. Assim, você pode ver que esta mensagem de exibição estará chegando. Não há conexão pendente e o Blackboard suspenso ou dois segundos. Então eu estou fazendo para dormir na fronteira essa quantidade de tempo, na verdade, dois segundos, então o que acontecerá? Deixe-me dormir é feito na verdade. O que acontecerá obviamente, novamente, ele irá iterar, controle de borda irá aqui, na verdade, novamente ele chamará a função de saída e novamente ele irá. Se isso for, se você tiver até esse momento, se você iniciou uma linha realmente, que está se conectando no mesmo número, nesse caso, ela aceitará a conexão e esse vento retornará com sucesso . E você não obterá isso se a condição for satisfeita. Se você tiver uma linha não ameaçadora, esse descritor de soquete não será menos um. Será um valor diferente de zero e, portanto, isso será satisfeito. E então você estará enviando essa mensagem neste soquete do cliente a partir da conexão do servidor. E, portanto, você está escrevendo uma mensagem dela para o soquete do cliente. Você está enviando esta mensagem, então você está chamando do programa do servidor, do lado do servidor para o soquete do cliente. Portanto, você está fornecendo o descritor de soquete do soquete do cliente. E você está passando esta mensagem MSG, que você está dando é teste, ei, oi. Este servidor enviará uma mensagem para o cliente, que você pode ver aparecendo no console de linha. É assim que ele se comporta a seccionamento. Vou mostrar que você comprou o que estamos tentando fazer aqui. Claramente agora vamos compilar o programa e executá-lo. Então, agora voltando ao entanto, Domino, tendo o programa, deixe-me redefinir para que você entenda mais claramente que estamos tendo. Então deixe-me remover este item e deixe-me executar o programa novamente. Como temos que compilar este programa e este programa está escrito na linguagem C e, portanto, usarei a ferramenta de compilador GCC, que é usada para compilar o programa de linguagem C no caso do sistema operacional Linux e, portanto, estou dando DCC. Portanto, isso será instalado por padrão em seu sistema operacional Linux. Portanto, é simples dar esse comando e você verá que ele foi criado. Agora você pode simplesmente isso um ponto fora. Nesse caso, quando você executá-lo você mesmo, nós realmente terminaremos o servidor. O que o servidor faz já que você está apenas iniciando o servidor e você não está iniciando o cliente depois disso. Nesse caso, ele retornará , na verdade, chama a função de livro didático. Ele retornará imediatamente. Ele dormirá por dois segundos. E novamente ele chamará a função de saída novamente, ela retornará imediatamente para dormir ou dois segundos. Então, isso continuará acontecendo no DNA e novamente até ele, a menos que você não inicie seu cliente. Depois de iniciar uma linha escura, o solucionador simplesmente expandirá que o conector é bem-sucedido e, pelo menos, enviará uma mensagem de servidor para cliente. Então, vamos ver, vamos correr como um ponto para fora. Então você pode ver aqui que está dizendo que não há conexão pendente. Dormiu por dois segundos. Mais uma vez. Depois de dois segundos, ele se recuperou novamente. Ele está chamando a função. Mais uma vez. Não há conexões pendentes, portanto, ele retornou imediatamente e dormindo os segundos do Porto novamente, isso é uma continuação realmente lhe dizer, lance seu tempo. Então deixe-me ou nove de longo prazo, abrirei um novo terminal como este. Então você pode ver aqui que este terminal é para o lado do servidor. Dominante, dominante. Estarei usando para lançar o horário. Então, como, desde o servidor Em comunicação que estamos fazendo na mesma máquina host na verdade. Portanto, estou demorando terminal nesta máquina de curso e vendo o novo dominante dessa maneira. E eu farei, eu farei para me conectar ao servidor realmente preciso, estou fazendo telnet localhost na verdade 0 distância este cliente de servidor está na mesma máquina local. Estou dando host local, ou seja, endereço IP em qualquer 0 ou t porque o servidor está vinculado a esse número de porta que vimos em nosso programa. Então, uma vez devendo, você pode ver aqui uma vez que eu faço dez minutos realmente o que aconteceu? É centímetro, está conectado ao host local. E esta mensagem recebeu, ei, oi, servidor de trombos. Então, vamos ver o que aconteceu no solucionador. Mais uma vez, veja dentro de meses e recebi uma mensagem. Depois de iniciar este cliente, na verdade, o cliente envia uma solicitação de você me viu fazendo dez. Deixe-o nesse caso, o que aconteceu? Simplesmente Bennett aceitou a conexão, foi bem-sucedida. E, portanto, dirá que tem uma conexão e relatará o item, que mensagem é ótima, vimos o quão alto estamos escrevendo do solucionador para o soquete de tempo que Deus exibiu aqui. Em seguida, adicionamos, depois nos desconectamos dessa conexão mais próxima pelos bits do autor e do host que vimos, o que estamos fazendo em nosso programa. Então isso é o que, isso acontece, nem todos voltando, está esperando, na verdade já que tínhamos colocado no loop infinito. Se nós, intelectualmente novamente, fizermos assim. E deixe-me executar este. O que acontecerá? Você pode ver novamente que é, tem que conexão. Ele os encaminhará para dizer, Ei, Oi, Então isso é o que, isso foi. Isso acontece na verdade. Fazer o soquete não bloqueia. Você pode ver como ele se comporta sexualmente. Agora, voltando para sim, sim. É assim que conseguimos isso. Acho que o programa, além de executá-lo tornando o soquete não bloqueador. Comunicação com o servidor cliente. É assim que você não pode múltiplas linhas na verdade. E então, do lado disso, simplesmente enviaremos uma mensagem para ela e não há nenhum cliente lançado, ele simplesmente retornará imediatamente e lhe dará a mensagem. Ele dormirá ou dois segundos novamente, continuará chamando a função de saída. Naquele minuto, uma pequena duna se conectou ao gueto. É assim que fica. Esse é o comportamento e terminamos com esta sessão completa. Na verdade, vimos agora escrevendo o programa, você viu qual é o propósito de não bloquear o soquete, e nós escrevemos o programa e executamos. É. Não quis dizer que acabei por enquanto. Obrigado, amigos. Muito obrigado. 27. Sessão de soquete16 de aplicativo ApplicationSocketProgramming Programming: Olá, Bem-vindo a esta última sessão do curso que esta aplicação de programação de soquete. Aqui estaremos vendo paralelo. A programação de soquete é usada, bem como veremos os aplicativos do mundo real onde toda a programação de soquete é usada. Vamos ver, passo a passo. Então, primeiro vamos rapidamente dispositivo sobre o soquete que vimos até agora. Sabemos que o soquete, é uma comunicação entre processos dentro dos mesmos cascos ou diferentes da minha corrente. Assim, o cliente pode estar presente na mesma máquina host que se comunicará durante a auditoria de comunicação do soquete pode estar presente em diferentes máquinas host diferentes. No diagrama, revisando rapidamente sobre isso. Então, vimos que existe um servidor e que é um cliente. Entenderá que a identidade da prata para o salvamento deve ter endereço IP associado e o número da porta, que deve ter seu endereço IP e número de porta para que o cliente, se tiver que fazer a comunicação com a célula, trabalhe em sincronia com o mesmo endereço IP e o número da porta em que o servidor está sendo executado. A comunicação. Vimos que vimos isso fenomenal e, portanto, eles estão comunicando comprometimento, declínios leves. Eles estão se comunicando pela internet. Começou um por um. A solicitação será enviada e estaremos lá na fila de espera, dependendo do programa, do que você configurou. Se você não sentir sentir, deve ser recusar e agir na fila, então isso estará acontecendo. Nesse caso, se você não quiser que apenas uma linha se comunique com o servidor, não deseja que nenhum outro tipo de conexão esteja na fila de espera. Para que tenhamos visto diferentes funções diferentes, portanto, calçada ou cliente, vimos que isso é apenas uma revisão. Agora, passando pelas áreas onde toda a programação do soquete é usada. Este é um por um que descrevi, isso fornece a capacidade de implementar a análise em tempo real. Então, o que é essa análise em tempo real? Você sabe que a análise em tempo real significa análise do tempo do DNA, mas a análise deles será feita. Por exemplo, se você for diferente, eu diria flipkart.com, amazing.com. Você pode ver que se suponha que você tenha duas partes, se um telefone celular, nesse caso, você pode ver que o site de compras intermediário lhe dará a tela fora da tela mais enquanto cobre tudo porque você está cortando. Você está procurando pelo celular. Então eles são muito inteligentes o suficiente para exibir essas coisas. Então isso indica que mais tarde você estará comprando o fino Garden mobilizado como você está perseguindo o celular. Isso é o que tudo sobre a análise de análise em tempo real também exemplos. Se você estiver, suponha que você esteja procurando um vestido em qualquer site de compras. Visite diferentes Instagram ou Facebook, você pode ver que você terá a idade adulta do vestido em si. Para que mais tarde você possa passar por esse site e comprar. Portanto, isso é tudo sobre análise em tempo real, análise. Ou seja, o que quer que você esteja pesquisando em seu navegador, esses dados são armazenados e que se tornarão à sua frente sempre que você estiver. O usuário estará cuidando dessa coisa em particular que está chegando ou se deslocando. É apenas um tipo ideal. Isso é o que a análise em tempo real. Portanto, a programação do soquete é usada também para mensagens instantâneas pela lógica dominó e entende enviar a mensagem, mensagem instantânea para o soquete. A comunicação com nossa programação é usada lá. Em seguida, para o streaming binário, bem como para a colaboração do documento. Então, para todos esses fins, a programação de soquete é usada nessas áreas. Em seguida, ele também é usado para criar o servidor. Investidores como servidores web, servidores de e-mail, servidores FTP e outros servidores. Então, vimos que haverá servidor e cliente onde toda a programação de soquete pode ser usada para criar o servidor como servidores web, servidores e-mail, servidores FTP fazem trans. Esses servidores FTP necessários associados ao transporte de arquivos. O principal você pode, você pode entender o que é para o, relação ao envio dos meios do servidor para isso. Toda a programação do soquete é usada. E se você fala sobre o lado do cliente, então os navegadores que podem ser Firefox ou podem ser crescidos, ou seja, a programação de soquete usada. Estas são as áreas onde toda a programação do soquete ou são usadas em outras áreas. A maioria desses protocolos de nível de aplicação de crença. Você viu File Transfer Protocol, SMTP, POP3, grandes notícias OK, soquete para estabelecer a conexão entre o cliente e o servidor. E, em seguida, para trocar dados, você sabe que o FTP é usado para transferir o arquivo do servidor para o cliente modo que toda a programação do soquete seja usada para enviar o e-mail, para enviando coisas diferentes, na verdade, todos esses SMTP do que mensagens na cerâmica. Todas essas coisas são, elas farão uso do soquete. Esses são os aplicativos que farão com que você soquete na comunicação acontecerá entre o servidor e o cliente. Essas são todas as idéias em que toda a programação de soquete é usada, esse FTP, SMTP, e espero que esses sejam os protocolos. Agora, outra coisa, na verdade, onde todos os sócrates usaram, eu estive no soquete dois, então nós os vimos em APIs de soquete, tudo isso. Ele permite que o programador crie aplicativos avançados de internet, intranet e outros recursos de rede intranet e outros recursos de rede para transmitir os dados do aplicativo através do fio independentemente do protocolo de rede sendo usado, toda a programação de soquete é usada. Então. Se você falar em termos de aplicação em tempo real, este é o aplicativo em tempo real onde Sócrates, vimos este programa. Então, para isso, fizemos o aplicativo de bate-papo em tempo real entre o servidor e o cliente. Vimos essa comunicação TCP e para o Windows e para o próprio Linux. Fizemos o programa também executado como a caixa do servidor para o cliente, cliente fala com o servidor. Esta é a programação de soquete usada, ou seja, aplicativo de bate-papo em tempo real. Em seguida, outro aplicativo em tempo real onde o soquete é usado. Vimos comunicação do servidor HTTP Apache com o navegador cliente. Então aqui, isso também estamos programando para isso, mas não o fizemos. Vimos que sempre que o usuário fornecer qualquer link no lado do cliente, navegador pode ser Mozilla, pode ser cultivado o Internet Explorer em qualquer outro navegador. Sempre que o usuário estiver fornecendo qualquer URL, esse navegador em si é um cliente. Portanto, a solicitação irá para o servidor HTTP Apache. E esse senso de cliente, porém, faremos a comunicação com o servidor em termos de envio da mensagem, em termos de formato de cabeçalho. Vimos isso ao entender esta sessão porque eu abordei anteriormente como o cliente enviaria a mensagem para a barra lateral no formato de cabeçalho de polegar para cima e como o corpo responde enviando cabeçalho e corpo para os polegares, insulina no lado ou resposta triste de incentivo da web ao cliente e a página é carregada, o que quer que o usuário tenha dado o URL no navegador que paga será carregado. Então, já fizemos a programação para esta fórmula, assim como Paulina. Então, vimos esse aplicativo do mundo real. Esta programação de soquete é usada em outro aplicativo, o aplicativo em tempo real é para aplicativo de reserva de táxi na programação do soquete é usado. Essas são as áreas em que toda a programação de soquete é usada, no entanto. Eu fiz para esta última sessão deste curso. Agora terminamos o curso completo. Obrigado. Muito obrigado. 28. SocketSession17 SourceCode: Eu tenho o código-fonte para todos os programas de soquete, que abordei em todo este curso. Então você pode encaminhá-lo depois de entender o quadro que expliquei em diferentes sessões.