herv.Sockets

Autor: Herval Freire de A. Júnior

Classes para gerenciamento de conexões TCP/IP

 


O hSocket surgiu como um trabalho de universidade - a finalidade inicial era a criação de um pacote de classes para armazenamento de dados de um host (IP, aliases, nome), além de dados referentes a conexões (end-points). As classes de Socket incluem sockets servidores e clientes. De utilização bastante semelhante à API da linguagem Java, a biblioteca hSocket pode ser expandida além do convencional TCP/IP.

 


Conteúdo da biblioteca
* Classe socketbuf
Superclasse: streambuf

O socketbuf é a classe responsável pelo controle dos fluxos (streams) entre as portas da aplicação. Um socketbuf é inicializado com o descritor da porta que servirá de objeto de e/s (istream/ostream)



* Classe InetAddress
Um InetAddress é uma classe de armazenamento de dados IP: basicamente, um objeto InetAddress armazena um hostent - uma estrutura de dados que contém, todos os IPs e Aliases de um host, além de seu nome oficial.
A classe InetAddress é usada como base para a ligação de um Socket: todo end-point (isto é: um conjunto de dois Sockets) é representado por 2 agrupamentos IP+porta - sendo a classe InetAddress responsável pela parte IP do conjunto.



* Classe Socket
Um Socket é um objeto de ligação de end-points. A atual versão do projeto prevê apenas a ligação de conexões TCP.
Para que uma conexão seja feita, um dos end-points precisa estar em estado de Listen, isto é, aguardando conexão - esta situação é coberta pela classe ServerSocket.
Os Sockets enviam e recebem dados através de streams: Um socket que deseja enviar dados deve utilizar o método getOutputstream(), enquanto que quando o mesmo quer ler os dados recebidos no buffer, deve fazer chamadas a getInputstream()



* Classe ServerSocket
Um ServerSocket é um Socket posto em estado de Listen em uma determinada porta. O ServerSocket possui um método Accept() para aceitar chamadas na porta.
Uma conexão se processa da seguinte forma:

1 - Um ServerSocket é estabelecido e começa o estado de Listen
2 - Uma vez chamando o Accept, o ServerSocket começa a responder as chamadas (blocking state). Uma chamada respondida gera um outro Socket local, já ligado ao socket do cliente que o chamou.
3 - Toda a comunicação é, então, passada para este novo Socket - o objeto ServerSocket não mais participa da comunicação.






Situação atual do projeto

Versão 0.5 alpha: suporte a conexões TCP/IP apenas. Uma eventual próxima versão deve incluir suporte a outros protocolos

 

Plataforma: Linux/Windows

Linguagem: C++

Última versão: 0.5 alpha

Data: 21/02/2001