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 TokudaRyotan 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(" 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 ttpLogger.javahttp:// ttpLogger.java 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:// :5000"); SocketConnection sc = (SocketConnection)Connector.open("datagram:// :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