jornada de cursos - j2me aula 7 – midlets conectados
TRANSCRIPT
![Page 1: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/1.jpg)
Jornada de Cursos - J2ME
Aula 7 – MIDlets conectados
![Page 2: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/4.jpg)
Estrutura de conexão genérica
![Page 5: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/6.jpg)
InputStream• InputStream openInputStream()• read()• skip()• close()
![Page 7: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/7.jpg)
OutputStream• Bastante semelhante a InputStream• write ao invés de read.
![Page 8: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/14.jpg)
Lendo e escrevendo• Mesma coisa de HTTP• Via InputStream e OutputStream
![Page 15: Jornada de Cursos - J2ME Aula 7 – MIDlets conectados](https://reader035.vdocuments.mx/reader035/viewer/2022062400/5706384c1a28abb8238f61a4/html5/thumbnails/15.jpg)
Referências• Tutoriais da Sun