소켓 연결은 에뮬레이터에서 좋지만 실제 장치 (J2ME)에서 보낼 수 없습니다.
문제
서버 / 클라이언트 응용 프로그램을 개발 중입니다. 응용 프로그램은 에뮬레이터에서 잘 작동하지만 Nokia 5200 또는 Nokia 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