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.