Post on 07-Apr-2016
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 - StreamConnectionvoid 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/
GetPostMIDlet.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://127.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