jornada de cursos - j2me aula 7 – midlets conectados

Post on 07-Apr-2016

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related