在我看来,MIDP 中的套接字创建存在某种限制。我需要与服务器建立大量连接(无并发),并且第四次或第五次尝试我的应用程序崩溃。它在模拟器和我的真实设备中也崩溃了。
为了隔离它受我的代码影响的任何可能性,我隔离了以下代码:
try {
StreamConnection c;
StringBuffer sb = new StringBuffer();
c = (StreamConnection) Connector.open(
"http://www.cnn.com.br/", Connector.READ_WRITE);
InputStreamReader r = new InputStreamReader(c.openInputStream(), "UTF-8");
System.out.println(r.read());
c.close();
} catch (IOException ex) {
ex.printStackTrace();
}
此代码在第 13 次尝试中崩溃。
我尝试在 while 循环中添加 10 秒的睡眠时间,但它在第 13 次尝试时也崩溃了。
崩溃消息是:
java.io.IOException: Resource limit exceeded for TCP client sockets
- com.sun.midp.io.j2me.socket.Protocol.open0(), bci=0
- com.sun.midp.io.j2me.socket.Protocol.connect(), bci=124
- com.sun.midp.io.j2me.socket.Protocol.open(), bci=125