套接字连接在仿真器上良好,但无法在真实设备中发送(J2ME)
题
我正在开发服务器/客户端应用程序。应用程序在仿真器上工作正常,但是当我在诺基亚5200或诺基亚6303i上测试时,虽然连接成功建立了成功,服务器块在第一个读取方法上。换句话说,客户端(J2ME)应用程序无法将数据发送到服务器。
我的客户部分:
Thread occ=new Thread(new Runnable() {
public void run() {
try {
SocketConnection sc = (SocketConnection)Connector.open("socket://213.233.169.142:2000");
sc.setSocketOption(SocketConnection.DELAY, 0);
OutputStream os=sc.openDataOutputStream();
DataOutputStream dos=new DataOutputStream(os);
InputStream is=sc.openDataInputStream();
DataInputStream dis=new DataInputStream(is);
//dos.writeUTF(receiverT.getString());
os.write("saalam".getBytes());
os.flush();
dos.writeUTF(Midlet.userPhoneNumber);
dos.flush();
dos.writeUTF(messT.getString());
dos.flush();
while((!dis.readUTF().equals("system-use:code=2")) && false)
{
}
dos.close();
os.close();
sc.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
});
occ.start();
.
我的服务器部分:
serverSocket = new ServerSocket(2000);
Socket socket=serverSocket.accept();
System.out.println("connection stablished");
inp=new DataInputStream(mySocket.getInputStream());
outp=new DataOutputStream(mySocket.getOutputStream());
receiverTemp=inp.read();//the server code blocks on this line
senderTemp=inp.readUTF();
.
.
.
.
. 解决方案 2
问题终于解决了。问题是一些移动运营商不允许使用原始套接字发送/接收信息,因此我们在端口80上使用了HTTP套接字并工作。
其他提示
您是否在JAD文件中设置了套接字权限?解决设备中的这种问题非常重要,这是非常重要的
不隶属于 StackOverflow