需要注意的是,CMWAP的代理网关是HTTP协议的。所以实际上你永远也不要指望你的代码达到CMNET的效率。CMNET可以直接使用Socket,并通过套接字建立一个持续连接,但是HTTP是基于请求/响应构架的。最好的一种处理方式是,在手机连接CMWAP代理的过程使用套接字:
SocketConnection socketConnection = (SocketConnection)Connector.open("socket://10.0.0.172:80");
这样至少保证了,在这一段连接上是高效的,但是代理网关到目标服务器这一段就无能为力了。由于网关是HTTP协议的,所以必须把网络协议设计成HTTP协议的格式:
//发送请求
OutputStream outputStream = socketConnection.openOutputStream();
outputStream.write((new String("get http://www.palmelf.com/test.xml http/1.0\r\n" + "accept:*/*\r\n\r\n")).getByte());
outputStream.flush();
//接收数据
InputStream inputStream = socketConnection.openInputStream();
byte[] receivedDate = new byte[1024];
int length = inputStream.read(receivedDate);
SocketConnection socketConnection = (SocketConnection)Connector.open("socket://10.0.0.172:80");
这样至少保证了,在这一段连接上是高效的,但是代理网关到目标服务器这一段就无能为力了。由于网关是HTTP协议的,所以必须把网络协议设计成HTTP协议的格式:
//发送请求
OutputStream outputStream = socketConnection.openOutputStream();
outputStream.write((new String("get http://www.palmelf.com/test.xml http/1.0\r\n" + "accept:*/*\r\n\r\n")).getByte());
outputStream.flush();
//接收数据
InputStream inputStream = socketConnection.openInputStream();
byte[] receivedDate = new byte[1024];
int length = inputStream.read(receivedDate);