15
Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Embed Size (px)

Citation preview

Page 1: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Jornada de Cursos - J2ME

Aula 7 – MIDlets conectados

Page 2: 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

Page 3: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

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

Page 4: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Estrutura de conexão genérica

Page 5: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

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

Page 6: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

InputStream• InputStream openInputStream()• read()• skip()• close()

Page 7: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

OutputStream• Bastante semelhante a InputStream• write ao invés de read.

Page 8: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

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

} }

Page 9: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Exemplo - HttpConnection• http://www.cin.ufpe.br/~ela/jornada/Exemplos/H

ttpLogger.java• http://www.cin.ufpe.br/~ela/jornada/

GetPostMIDlet.java

Page 10: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Conexões com sockets• Para alcançar outros celulares -> sockets!• O que é um socket?• Streams• linear

• Datagramas• Sem ordem

Page 11: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Sockets e o GCF• Implementado pela maioria dos celulares• Rumores de que vai ser standard em MIDP 3.0

Page 12: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

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

Page 13: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Coletando informação• getAddress()• getPort()• getSocketOption()• Exist eum setSocketOption():• KEEPALIVE, LINGER, SNDBUF, RCVBUF, or DELAY

Page 14: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Lendo e escrevendo• Mesma coisa de HTTP• Via InputStream e OutputStream

Page 15: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados

Referências• Tutoriais da Sun