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) |
|