Jornada de Cursos - J2ME
Aula 7 – MIDlets conectados
Pausa para reflexão
"Sem esforço não há progresso, mas com esforço também
não há progresso”
Ryotan Tokuda, Mestre Zen
Conexão no MIDP
• Subconjunto do J2SE com algumas adaptações
• HTTP é a única implementação mandatória
• Utiliza a classe Connector para criar as conexões
• Connector.Open("protocol:address;parameters");
• Exemplo:
• Connector.Open("http://www.some_web_address.com");
• Connector.Open("socket://someaddress:1234");
Estrutura de conexão genérica
Conexão HTTP
• Protocolo de pedido/resposta
• InputStream e OutputStream
•
•
•
•
Protocolo:endereço;parâmetros
Porta paralela, HTTP, HTTPS, Datagrama, etc
GET / POST
Seta atributos para as requisições
InputStream
•
•
•
•
InputStream openInputStream()
read()
skip()
close()
OutputStream
• Bastante semelhante a InputStream
• write ao invés de read.
Exemplo - StreamConnection
void getViaStreamConnection(String url) throws IOException {
StreamConnection c = null;
InputStream s = null;
try {
c = (StreamConnection)Connector.open(url);
s = c.openInputStream();
int ch;
while ((ch = s.read()) != -1) {
...
}
}
finally {
if (s != null) s.close();
if (c != null) c.close();
}
}
Exemplo - HttpConnection
• http://www.cin.ufpe.br/~ela/jornada/Exemplos/H
ttpLogger.java
• http://www.cin.ufpe.br/~ela/jornada/GetPostMID
let.java
Conexões com sockets
• Para alcançar outros celulares -> sockets!
• O que é um socket?
• Streams
• linear
• Datagramas
• Sem ordem
Sockets e o GCF
• Implementado pela maioria dos celulares
• Rumores de que vai ser standard em MIDP 3.0
SocketConnection
• TCP: socket://
• UDP: datagram://
• Mesmo modelo do protocolo HTTP
(protocolo:endereço;parametros)
• Ex.:
• SocketConnection sc =
(SocketConnection)Connector.open("socket://127.0
.0.1:5000");
• SocketConnection sc =
(SocketConnection)Connector.open("datagram://12
7.0.0.1:5000");
Coletando informação
• getAddress()
• getPort()
• getSocketOption()
• Exist eum setSocketOption():
• KEEPALIVE, LINGER, SNDBUF, RCVBUF, or DELAY
Lendo e escrevendo
• Mesma coisa de HTTP
• Via InputStream e OutputStream
Referências
• Tutoriais da Sun
Download

Programa Expresso de Capacitação Módulo J2ME