3.4.2.
SESSÕES DE REDE CLANLIB
|
Uma
sessão de rede na ClanLib
pode ser criada através da classe CL_NetSession,
que representa: ·
um
contêiner de computadores conectados; ·
um
conjunto de sinais chamados quando da aceitação de conexão, desconexão e reconexão computadores ao sistema; ·
sinais
que são chamados quando pacotes de rede são recebidos. Uma
sessão de rede na ClanLib
pode se tornar um servidor, um cliente, ou qualquer outro tipo de combinação
desejada e dessa forma, é possível que seja criado um modelo ponto a ponto ou
fazer servidores se conectarem a outros servidores e ainda permitir que um
cliente se conecte a mais de um servidor ao mesmo tempo. O
código a seguir demonstra a utilização de CL_NetSession, com a criação de um servidor e
posterior conexão de um cliente: 1 void Sessao::exemplo(){ 2 CL_NetSession host("Meu Jogo"); 3 std::cout
<< "Sessao srv
criada" << std::endl; 4 CL_Slot 5 slotCon=host.sig_computer_connected().connect( 6 this, &Sessao::on_connect); 7 std::cout
<<"Srv escutando a porta
9999...\n"; 8 host.start_listen("9999"); 9 CL_NetSession cli("Hello"); 10 std::cout
<< "Sessao cli
criada" << std::endl; 11 std::cout
<< "Cli conectando..."
<< std::endl; 12 cli.connect(CL_IPAddress("localhost",
"9999"));} 13 void Sessao::on_connect(CL_NetComputer &computer){ 14 std::cout
<<"Computador conectado
de:"<< 15 computer.get_address().get_address();} No
código anterior, verifica-se na linha 2 a criação de
uma sessão servidora através do objeto host
de CL_NetSession. A linhas 4 a 6
criam um slot associado ao evento gerado após uma
conexão ao servidor e ainda define a função que será chamada quando tal
evento ocorrer. O
código da linha 8 faz com quer o objeto host
comece a escutar a porta 9999, o que permitirá que tal objeto reconheça
tentativas de conexão nessa porta. As
linhas seguintes demonstram os códigos necessários para a conexão de um
cliente à sessão servidora criada. Na linha 9, uma
sessão cliente é criada para possibilitar a tentativa de conexão. A linha 12
demonstra o comando necessário para que o cliente se conecte ao servidor
através da porta 9999. Os
comandos nas linhas 13 a 15 são a função e seu corpo, que contém os comandos
que serão executados quando o evento de conexão ocorrer. A
execução de tal seqüência de programa geraria o seguinte resultado:
Fonte:
Dados de Pesquisa |
|