2007-10-08 10:09:17

by jm

[permalink] [raw]
Subject: [Bluez-users] Problem with RFCOMM socket

Hello all,

I am trying to connect BlueZ with JSR-82 with RFCOMM sockets. The BlueZ
server creates a socket server and the JSR-82 MIDlet connects to it.

It all goes well until the server sends some data and closes the socket.
The JSR-82 program launches a "java.io.IOException: Stream closed or
disconnected" when trying to get the number of bytes available from the
stream. The problem can be solved by having the server call sleep(10)
before calling close(clientSocket), giving some time for the client to
fetch the data, but obviously it is a bad solution.

This is the code:

Server, C:

status = write( clientSocket, message, messageSize );

sleep(10); //Comment this for an error

close(clientSocket);

Client, Java:

try
{
while ( inputStream.available() == 0)
{
Thread.sleep(100);
notifyUser("Waiting for data...");
}
}
catch(IOException ex)
{
notifyUser(ex.getMessage());
}

Rest of the code is not relevant in my opinion, but I can post it if
someone needs it to find a solution. However, it is pretty simple and
based in http://people.csail.mit.edu/albert/bluez-intro/x502.html and
http://developers.sun.com/mobility/midp/articles/bluetooth2/

Is there something I am missing about RFCOMM sockets? Is it JSR-82
related? Is it a bug?

Thanks

jm

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users


2007-10-08 11:04:21

by Manuel Naranjo

[permalink] [raw]
Subject: Re: [Bluez-users] Problem with RFCOMM socket

I don't think it's a bug at all, if the status of write tells you that
the data has all ready beeing streamed, then the problem is on the
midlet side. Take into account that given the frequency bluetooth
works there's a little delay between you send the data, and the data
is received by your peer, for most applications you will not notice,
but you might for this.

What you can do is making the midlet side to close the connection, and
not regard on the bluez side. Or make the midlet send some control
stuff back to bluez so your C code closes the rfcomm after the other
peer received your data.


> Hello all,
>
> I am trying to connect BlueZ with JSR-82 with RFCOMM sockets. The BlueZ
> server creates a socket server and the JSR-82 MIDlet connects to it.
>
> It all goes well until the server sends some data and closes the socket.
> The JSR-82 program launches a "java.io.IOException: Stream closed or
> disconnected" when trying to get the number of bytes available from the
> stream. The problem can be solved by having the server call sleep(10)
> before calling close(clientSocket), giving some time for the client to
> fetch the data, but obviously it is a bad solution.
>
> This is the code:
>
> Server, C:
>
> status = write( clientSocket, message, messageSize );
>
> sleep(10); //Comment this for an error
>
> close(clientSocket);
>
> Client, Java:
>
> try
> {
> while ( inputStream.available() == 0)
> {
> Thread.sleep(100);
> notifyUser("Waiting for data...");
> }
> }
> catch(IOException ex)
> {
> notifyUser(ex.getMessage());
> }
>
> Rest of the code is not relevant in my opinion, but I can post it if
> someone needs it to find a solution. However, it is pretty simple and
> based in http://people.csail.mit.edu/albert/bluez-intro/x502.html and
> http://developers.sun.com/mobility/midp/articles/bluetooth2/
>
> Is there something I am missing about RFCOMM sockets? Is it JSR-82
> related? Is it a bug?
>
> Thanks
>
> jm
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems? Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> Bluez-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bluez-users
>


--
Naranjo, Manuel Francisco

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users