Windows Sockets em MFC
Observação
O MFC dá suporte ao Windows Sockets 1, mas não dá suporte ao Windows Sockets 2. O Windows Sockets 2 foi enviado pela primeira vez com o Windows 98 e é a versão incluída no Windows 2000.
O MFC fornece dois modelos para escrever programas de comunicação de rede com o Windows Sockets, incorporados em duas classes MFC. Este artigo descreve esses modelos e mais detalhes sobre o suporte a soquetes MFC. Um "soquete" é um ponto de extremidade de comunicação: um objeto por meio do qual seu aplicativo se comunica com outros aplicativos do Windows Sockets em uma rede.
Para informações sobre o Windows Sockets, incluindo uma explicação do conceito de soquete, confira Windows Sockets: informações preliminares.
Modelos de programação de soquetes
Os dois modelos de programação do Windows Sockets MFC têm suporte nas seguintes classes:
CAsyncSocket
Essa classe encapsula a API do Windows Sockets. CAsyncSocket é para programadores que conhecem a programação de rede e querem a flexibilidade de programar diretamente para a API de soquetes, mas também a conveniência das funções de retorno de chamada para notificação de eventos de rede. Além de empacotar soquetes na forma orientada a objeto para uso em C++, a única abstração adicional fornecida por essa classe é converter determinadas mensagens do Windows relacionadas ao soquete em retornos de chamada. Para obter mais informações, consulte Windows Sockets: notificações de soquete.
CSocket
Essa classe, derivada de
CAsyncSocket
, fornece uma abstração de nível mais alto para trabalhar com soquetes por meio de um objeto CArchive do MFC. Usar um soquete com um arquivo é muito parecido com o protocolo de serialização de arquivos do MFC. Isso o torna mais fácil de usar que o modeloCAsyncSocket
. O CSocket herda várias funções de membro deCAsyncSocket
que encapsulam APIs do Windows Sockets; você precisará usar algumas dessas funções e entender a programação de soquetes em geral. Porém,CSocket
gerencia muitos aspectos da comunicação que você teria que fazer por conta própria usando a API bruta ou a classeCAsyncSocket
. Mais importante,CSocket
fornece bloqueio (com processamento em segundo plano de mensagens do Windows), que é essencial para a operação síncrona deCArchive
.
A criação e o uso de objetos CSocket
e CAsyncSocket
são descritos em Windows Sockets: como usar soquetes com arquivos e Windows Sockets: como usar a classe CAsyncSocket.
DLLs do Windows Sockets
Os sistemas operacionais Microsoft Windows fornecem a DLL (bibliotecas de vínculo dinâmico) do Windows Sockets. O Visual C++ fornece os arquivos e bibliotecas de cabeçalho apropriados e a especificação do Windows Sockets.
Para mais informações sobre Windows Sockets, confira:
Windows Sockets: exemplo de soquetes que usam arquivos mortos
Windows Sockets: como funcionam soquetes com arquivos mortos