CAPÍTULO 6
Programação visual com Software Livre
EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo.  Prólogo de Benoit Minisini

<< Anterior Próximo >>


6.4 Clientes e servidores locais




A margem dos sockets TCP, desenhados para conectar equipamentos remotos, nos sistemas GNU/Linux, em geral qualquer sistema que siga a filosofia da família de sistemas UNIXTM, dispõe de um outro tipo de sockets, que só permitem a conexão dentro do próprio equipamento e cuja missão é optimizar a funcionalidade desses sockets quando o cliente e servidor encontram-se na mesma maquina.

Estes sockets são uns arquivos especiais que o servidor cria dentro do sistema de arquivos, e que os clientes tratam de abrir para leitura e escrita de dados. Temos de levar em conta que localizar um destes arquivos especiais dentro de uma unidade de rede não serve não serve para conectar dois equipamentos diferentes: um socket UNIX ou local, só podemos empregar dentro de um mesmo equipamento.

Todo o explicado até aqui para clientes e servidores TCP, é aplicável aos clientes e servidores locais, a única diferença se dá no modo inicial de configurar o serviço.

No caso do servidor, antes de conectar temos de especificar que o tipo de servidor é local e um caminho para um arquivo que representará o socket servidor.




' Servidor TCP

PRIVATE Servidor AS ServerSocket


PUBLIC SUB Main()

Servidor = NEW ServerSocket AS "Servidor"


Servidor.Type = Net.Internet

TRY Servidor.Listen()

IF ERROR THEN PRINT "Erro: o sistema não permite atender a porta especificada"


END

' Servidor TCP

PRIVATE Servidor AS ServerSocket


PUBLIC SUB Main()
 

Servidor = NEW ServerSocket AS "Servidor"


Servidor.Type = Net.Local

Servidor.Path = User.Home & "/meusocket"

TRY Servidor.Listen()

IF ERROR THEN PRINT "Erro: o sistema não permite atender a porta especificada"


END

Se executarmo o código com essa modificação, observaremos que em nossa pasta pessoal cria-se um arquivo especial do tipo socket chamado meusocket. Na parte cliente temos de especificar que a conexão será em um endereço dentro do sistema de arquivo, no lugar de uma porta TCP,  para o qual se indica a porta especial Net.Local e a propriedade Path do socket.

Cliente = NEW Socket AS "Cliente"

Cliente.Path = User.Home & "/meusocket"

Cliente.Port = Net.Local

Cliente.Connect()

A partir daqui o resto do código funciona sem modificações.

É uma boa idéia expor a possibilidade de que servidores e clientes funcionem com socket locais ou TCP, segundo os parâmetros de configurações da aplicação, a fim de optimizar o funcionamento quando cliente servidor encontram-se na mesma maquina. Os servidores X e os de fontes gráficas empregam este modo de trabalho.





<< Anterior Próximo >>

HOME
                     


Cópia literal

Extraído do livro “GAMBAS, programação visual com software Livre”, da editora EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo. Prólogo de Benoit Minisini

LICENSA DESTE DOCUMENTO


É permitido a cópia e distribuição da totalidade ou parte desta obra sem fins lucrativo. Toda cópia total ou parcial devera expressar o nome do autor e da editora e incluir esta mesma licença, adicionando se é uma cópia literal “Cópia literal”. Se é autorizada a modificação e tradução da obra  sem fins lucrativo sempre se deve constar na obra resultante  a modificação o nome da obra original o autor da obra original e o nome da editora e a obra resultante também deverá ser livremente reproduzida, distribuída, ao publico e transformada em termos similares ao exposto nesta licença.

Tradução

Cientista
 (Antonio Sousa)