블루투스를 통한 SPP (Java의 경우 BlueCove API)를 사용하는 두 대의 PC간에 파일 (약 6 메가 바이트 크기의 MP3)을 전송하려고합니다. 나는 한 방향 (예를 들어, 클라이언트에서 서버로 하나의 파일)에서 잘 작동하는 파일 전송을 얻을 수 있지만, 같은 세션에서 반대 방향으로 데이터를 보내려고 할 때 (즉, 서버에서 파일을 전송할 때) 클라이언트에게), 프로그램이 멈추고 진행되지 않습니다. 전송이 잘 작동블루투스를 통한 SPP로 파일 송수신시 문제가 발생했습니다.
StreamConnection conn;
OutputStream outputStream;
outputStream = conn.openOutputStream();
....
outputStream.write(data); //Data here is an MP3 file converted to byte array
outputStream.flush();
: 단순히 내가 예를 들어
. 하지만 시도하면 :
StreamConnection conn;
OutputStream outputStream;
InputStream inputStream;
ByteArrayOutputStream out = new ByteArrayOutputStream();
outputStream = conn.openOutputStream();
inputStream = conn.openInputStream();
....
outputStream.write(data);
outputStream.flush();
int receiveData;
while ((receiveData = inputStream.read()) != -1) {
out.write(receiveData);
}
클라이언트와 서버가 모두 멈추고 앞으로 나아 가지 않습니다. 나는 파일 전송이 어떤 시점에서 실제로 일어나고있는 것을 볼 수있다. 클라이언트를 죽이면 서버는 문제없이 하드 드라이브에 파일을 기록하기 때문이다. 다른 파일 또는 정수로 응답하려고 시도 할 수 있으며 여전히 작동하지 않습니다.
누구든지 문제가 무엇인지 알 수 있습니까? 나는 OBEX가 블루투스를 통한 파일 전송에 일반적으로 사용된다는 것을 알고 있지만, 내가해야 할 일에는 과도한 것처럼 보였다. 이 기능을 위해 OBEX를 사용해야합니까?
클라이언트 측 코드 요약을 게시 할 수 있습니까? – lijie
와이어 덤프 (어떤 종류의 스니퍼 사용)가 도움이 될 것입니다. [Wireshark] (http : //www.wireshark.org /)를 사용하여이 파일을 덤프하고이 질문에 첨부하십시오. – GreyCat