* [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required !
@ 2006-11-03 20:36 Olivier Le Pogam
2006-11-03 21:26 ` Brad Midgley
2006-11-04 16:42 ` Peter Wippich
0 siblings, 2 replies; 4+ messages in thread
From: Olivier Le Pogam @ 2006-11-03 20:36 UTC (permalink / raw)
To: BlueZ development
[-- Attachment #1.1: Type: text/plain, Size: 3316 bytes --]
Hi,
For the ones who have read my messages a few days ago ...
I am still performing concurrency tests !
I run a server on 2 remote devices (one on channel 24, the
other on channel 25), and I try to connect to them concurrently
from the same Linux box / BT key (the remote servers are simple "echo"
ones, the linux client is sending numbers from 1 to 10 with a sleep(1) at
each step).
I have a simple batch :
client.sh :
./client 00:16:4E:83:2D:19 25 &
./client 00:0D:88:9B:FF:D7 24 &
where client is called with BDADDR and channel
Here is what I get in my logs :
Connection to remote 00:16:4E:83:2D:19 channel 25
Connection to remote 00:0D:88:9B:FF:D7 channel 24
[00:16:4E:83:2D:19] Can't connect(111) ====> 111 is connection refused
[00:0D:88:9B:FF:D7] Connected to remote 00:0D:88:9B:FF:D7 channel 24, from local 00:11:67:0D:2E:2C channel 24
[00:0D:88:9B:FF:D7] Sent 0 received 0
...
If I swap the order of calling "client" i.e :
client.sh :
./client 00:0D:88:9B:FF:D7 24 &
./client 00:16:4E:83:2D:19 25 &
Then it's still the first which can't connect (now it will be 00:0D:88:9B:FF:D7)
So basically, it seems that there can't be two "connect"
concurrently on the same adaptor.
Can please BlueZ developers confirm ?
Thanks a lot
Oli
For who is interested, here is the interesting part of client.c :
int main(int argc, char **argv)
{
struct sockaddr_rc laddr, raddr;
int sk, i;
memset(&laddr, 0, sizeof(laddr));
memset(&raddr, 0, sizeof(raddr));
laddr.rc_family = AF_BLUETOOTH;
bacpy(&laddr.rc_bdaddr, BDADDR_ANY);
laddr.rc_channel = 0;
raddr.rc_family = AF_BLUETOOTH;
str2ba(argv[1], &raddr.rc_bdaddr);
raddr.rc_channel = atoi(argv[2]);
if (argc != 3) {
fprintf(stderr,"Usage: client address channel\n");
exit(EXIT_FAILURE);
}
debugOutput("Connection to remote %s channel %s", argv[1], argv[2]);
sk = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
if (sk < 0) {
debugOutput("[%s] Can't create RFCOMM socket", argv[1]);
return -1;
}
if (bind(sk, (struct sockaddr *)&laddr, sizeof(laddr)) < 0) {
debugOutput("[%s] Can't bind RFCOMM socket", argv[1]);
close(sk);
return -1;
}
if (connect(sk, (struct sockaddr *)&raddr, sizeof(raddr)) < 0) {
debugOutput("[%s] Can't connect(%d)", argv[1], errno);
close(sk);
return -1;
}
char loc_addr[30];
strcpy(loc_addr, "");
int len = sizeof(laddr);
if (getsockname (sk, &laddr, &len ) > 0)
debugOutput("[%s] Can't getsockname", argv[1]);
else ba2str(&laddr.rc_bdaddr, loc_addr);
debugOutput("[%s] Connected to remote %s channel %s, from local %s channel %d", argv[1], argv[1], argv[2], loc_addr, laddr.rc_channel);
for (i = 0; i<10; i++)
{
char buf[1024];
sprintf(buf, "%d%c", i, 10);
write(sk, buf, strlen(buf));
strcpy(buf, "");
readString(sk, buf);
if( strlen(buf) > 0 ) {
debugOutput("[%s] Sent %d received %s", argv[1], i, buf);
} else {
debugOutput("[%s] Sent %d received no answer", argv[1], i);
break;
}
sleep(1);
}
close(sk);
debugOutput("[%s] Disconnected", argv[1]);
return 0;
}
[-- Attachment #1.2: Type: text/html, Size: 6676 bytes --]
[-- Attachment #2: "AVG certification" --]
[-- Type: text/plain, Size: 151 bytes --]
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.13.25/515 - Release Date: 03/11/2006
[-- Attachment #3: Type: text/plain, Size: 373 bytes --]
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
[-- Attachment #4: Type: text/plain, Size: 164 bytes --]
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required !
2006-11-03 20:36 [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required ! Olivier Le Pogam
@ 2006-11-03 21:26 ` Brad Midgley
2006-11-04 16:38 ` Olivier Le Pogam
2006-11-04 16:42 ` Peter Wippich
1 sibling, 1 reply; 4+ messages in thread
From: Brad Midgley @ 2006-11-03 21:26 UTC (permalink / raw)
To: Olivier Le Pogam, BlueZ development
Olivier
This thing tends to happen if you have the wrong end of the connection
being master. Make sure your linux box has master in the lm line in
hcid.conf and that your clients do not.
Brad
> For the ones who have read my messages a few days ago ...
> I am still performing concurrency tests !
>
> I run a server on 2 remote devices (one on channel 24, the
> other on channel 25), and I try to connect to them concurrently
> from the same Linux box / BT key (the remote servers are simple "echo"
> ones, the linux client is sending numbers from 1 to 10 with a sleep(1) at
> each step).
>
> I have a simple batch :
>
> client.sh :
> ./client 00:16:4E:83:2D:19 25 &
> ./client 00:0D:88:9B:FF:D7 24 &
>
> where client is called with BDADDR and channel
>
> Here is what I get in my logs :
>
> Connection to remote 00:16:4E:83:2D:19 channel 25
> Connection to remote 00:0D:88:9B:FF:D7 channel 24
> [00:16:4E:83:2D:19] Can't connect(111) ====> 111 is connection refused
> [00:0D:88:9B:FF:D7] Connected to remote 00:0D:88:9B:FF:D7 channel 24,
> from local 00:11:67:0D:2E:2C channel 24
> [00:0D:88:9B:FF:D7] Sent 0 received 0
> ...
>
> If I swap the order of calling "client" i.e :
>
> client.sh :
> ./client 00:0D:88:9B:FF:D7 24 &
> ./client 00:16:4E:83:2D:19 25 &
>
> Then it's still the first which can't connect (now it will be
> 00:0D:88:9B:FF:D7)
>
> So basically, it seems that there can't be two "connect"
> concurrently on the same adaptor.
>
> Can please BlueZ developers confirm ?
>
> Thanks a lot
> Oli
>
> For who is interested, here is the interesting part of client.c :
>
> int main(int argc, char **argv)
> {
> struct sockaddr_rc laddr, raddr;
> int sk, i;
>
> memset(&laddr, 0, sizeof(laddr));
> memset(&raddr, 0, sizeof(raddr));
>
> laddr.rc_family = AF_BLUETOOTH;
> bacpy(&laddr.rc_bdaddr, BDADDR_ANY);
> laddr.rc_channel = 0;
>
> raddr.rc_family = AF_BLUETOOTH;
> str2ba(argv[1], &raddr.rc_bdaddr);
> raddr.rc_channel = atoi(argv[2]);
>
> if (argc != 3) {
> fprintf(stderr,"Usage: client address channel\n");
> exit(EXIT_FAILURE);
> }
>
> debugOutput("Connection to remote %s channel %s", argv[1], argv[2]);
>
> sk = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
> if (sk < 0) {
> debugOutput("[%s] Can't create RFCOMM socket", argv[1]);
> return -1;
> }
>
> if (bind(sk, (struct sockaddr *)&laddr, sizeof(laddr)) < 0) {
> debugOutput("[%s] Can't bind RFCOMM socket", argv[1]);
> close(sk);
> return -1;
> }
>
> if (connect(sk, (struct sockaddr *)&raddr, sizeof(raddr)) < 0) {
> debugOutput("[%s] Can't connect(%d)", argv[1], errno);
> close(sk);
> return -1;
> }
>
> char loc_addr[30];
> strcpy(loc_addr, "");
>
> int len = sizeof(laddr);
> if (getsockname (sk, &laddr, &len ) > 0)
> debugOutput("[%s] Can't getsockname", argv[1]);
> else ba2str(&laddr.rc_bdaddr, loc_addr);
>
> debugOutput("[%s] Connected to remote %s channel %s, from local %s
> channel %d", argv[1], argv[1], argv[2], loc_addr, laddr.rc_channel);
>
> for (i = 0; i<10; i++)
> {
> char buf[1024];
> sprintf(buf, "%d%c", i, 10);
> write(sk, buf, strlen(buf));
> strcpy(buf, "");
>
> readString(sk, buf);
> if( strlen(buf) > 0 ) {
> debugOutput("[%s] Sent %d received %s", argv[1], i, buf);
> } else {
> debugOutput("[%s] Sent %d received no answer", argv[1], i);
> break;
> }
> sleep(1);
> }
>
> close(sk);
> debugOutput("[%s] Disconnected", argv[1]);
>
> return 0;
> }
>
>
> ------------------------------------------------------------------------
>
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.1.409 / Virus Database: 268.13.25/515 - Release Date: 03/11/2006
>
>
>
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Bluez-devel mailing list
> Bluez-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bluez-devel
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required !
2006-11-03 21:26 ` Brad Midgley
@ 2006-11-04 16:38 ` Olivier Le Pogam
0 siblings, 0 replies; 4+ messages in thread
From: Olivier Le Pogam @ 2006-11-04 16:38 UTC (permalink / raw)
To: BlueZ development, Brad Midgley
Hi Brad,
Ok I will try this !
The two remote devices I test with are a mobile phone
(with a j2me application) and a Windows XP RFCOMM
server. I am not sure how to check the "master" setting on
the mobile phone or windows XP !!
Thanks, a lot,
Oli
----- Original Message -----
From: "Brad Midgley" <bmidgley@xmission.com>
To: "Olivier Le Pogam" <olepogam@free.fr>; "BlueZ development"
<bluez-devel@lists.sourceforge.net>
Sent: Friday, November 03, 2006 10:26 PM
Subject: Re: [Bluez-devel] To blueZ developers : can't do two "connect"
concurrently, help required !
> Olivier
>
> This thing tends to happen if you have the wrong end of the connection
> being master. Make sure your linux box has master in the lm line in
> hcid.conf and that your clients do not.
>
> Brad
>
>> For the ones who have read my messages a few days ago ...
>> I am still performing concurrency tests !
>>
>> I run a server on 2 remote devices (one on channel 24, the
>> other on channel 25), and I try to connect to them concurrently
>> from the same Linux box / BT key (the remote servers are simple "echo"
>> ones, the linux client is sending numbers from 1 to 10 with a sleep(1) at
>> each step).
>>
>> I have a simple batch :
>>
>> client.sh :
>> ./client 00:16:4E:83:2D:19 25 &
>> ./client 00:0D:88:9B:FF:D7 24 &
>>
>> where client is called with BDADDR and channel
>>
>> Here is what I get in my logs :
>>
>> Connection to remote 00:16:4E:83:2D:19 channel 25
>> Connection to remote 00:0D:88:9B:FF:D7 channel 24
>> [00:16:4E:83:2D:19] Can't connect(111) ====> 111 is connection refused
>> [00:0D:88:9B:FF:D7] Connected to remote 00:0D:88:9B:FF:D7 channel 24,
>> from local 00:11:67:0D:2E:2C channel 24
>> [00:0D:88:9B:FF:D7] Sent 0 received 0
>> ...
>>
>> If I swap the order of calling "client" i.e :
>>
>> client.sh :
>> ./client 00:0D:88:9B:FF:D7 24 &
>> ./client 00:16:4E:83:2D:19 25 &
>>
>> Then it's still the first which can't connect (now it will be
>> 00:0D:88:9B:FF:D7)
>>
>> So basically, it seems that there can't be two "connect"
>> concurrently on the same adaptor.
>>
>> Can please BlueZ developers confirm ?
>>
>> Thanks a lot
>> Oli
>>
>> For who is interested, here is the interesting part of client.c :
>>
>> int main(int argc, char **argv)
>> {
>> struct sockaddr_rc laddr, raddr;
>> int sk, i;
>>
>> memset(&laddr, 0, sizeof(laddr));
>> memset(&raddr, 0, sizeof(raddr));
>>
>> laddr.rc_family = AF_BLUETOOTH;
>> bacpy(&laddr.rc_bdaddr, BDADDR_ANY);
>> laddr.rc_channel = 0;
>>
>> raddr.rc_family = AF_BLUETOOTH;
>> str2ba(argv[1], &raddr.rc_bdaddr);
>> raddr.rc_channel = atoi(argv[2]);
>>
>> if (argc != 3) {
>> fprintf(stderr,"Usage: client address channel\n");
>> exit(EXIT_FAILURE);
>> }
>>
>> debugOutput("Connection to remote %s channel %s", argv[1], argv[2]);
>>
>> sk = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
>> if (sk < 0) {
>> debugOutput("[%s] Can't create RFCOMM socket", argv[1]);
>> return -1;
>> }
>>
>> if (bind(sk, (struct sockaddr *)&laddr, sizeof(laddr)) < 0) {
>> debugOutput("[%s] Can't bind RFCOMM socket", argv[1]);
>> close(sk);
>> return -1;
>> }
>>
>> if (connect(sk, (struct sockaddr *)&raddr, sizeof(raddr)) < 0) {
>> debugOutput("[%s] Can't connect(%d)", argv[1], errno);
>> close(sk);
>> return -1;
>> }
>>
>> char loc_addr[30];
>> strcpy(loc_addr, "");
>>
>> int len = sizeof(laddr);
>> if (getsockname (sk, &laddr, &len ) > 0)
>> debugOutput("[%s] Can't getsockname", argv[1]);
>> else ba2str(&laddr.rc_bdaddr, loc_addr);
>>
>> debugOutput("[%s] Connected to remote %s channel %s, from local %s
>> channel %d", argv[1], argv[1], argv[2], loc_addr, laddr.rc_channel);
>>
>> for (i = 0; i<10; i++)
>> {
>> char buf[1024];
>> sprintf(buf, "%d%c", i, 10);
>> write(sk, buf, strlen(buf));
>> strcpy(buf, "");
>>
>> readString(sk, buf);
>> if( strlen(buf) > 0 ) {
>> debugOutput("[%s] Sent %d received %s", argv[1], i, buf);
>> } else {
>> debugOutput("[%s] Sent %d received no answer", argv[1], i);
>> break;
>> }
>> sleep(1);
>> }
>>
>> close(sk);
>> debugOutput("[%s] Disconnected", argv[1]);
>>
>> return 0;
>> }
>>
>>
>> ------------------------------------------------------------------------
>>
>> No virus found in this outgoing message.
>> Checked by AVG Free Edition.
>> Version: 7.1.409 / Virus Database: 268.13.25/515 - Release Date:
>> 03/11/2006
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> -------------------------------------------------------------------------
>> Using Tomcat but need to do more? Need to support web services, security?
>> Get stuff done quickly with pre-integrated technology to make your job
>> easier
>> Download IBM WebSphere Application Server v.1.0.1 based on Apache
>> Geronimo
>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Bluez-devel mailing list
>> Bluez-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/bluez-devel
>
>
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.409 / Virus Database: 268.13.25/515 - Release Date:
> 03/11/2006
>
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.13.27/517 - Release Date: 03/11/2006
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required !
2006-11-03 20:36 [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required ! Olivier Le Pogam
2006-11-03 21:26 ` Brad Midgley
@ 2006-11-04 16:42 ` Peter Wippich
1 sibling, 0 replies; 4+ messages in thread
From: Peter Wippich @ 2006-11-04 16:42 UTC (permalink / raw)
To: Olivier Le Pogam, BlueZ development
Hi Oli,
On Fri, 3 Nov 2006, Olivier Le Pogam wrote:
> Hi,
>
> For the ones who have read my messages a few days ago ...
> I am still performing concurrency tests !
>
> I run a server on 2 remote devices (one on channel 24, the
> other on channel 25), and I try to connect to them concurrently
> from the same Linux box / BT key (the remote servers are simple "echo"
> ones, the linux client is sending numbers from 1 to 10 with a sleep(1) at
> each step).
>
> So basically, it seems that there can't be two "connect"
> concurrently on the same adaptor.
>
> Can please BlueZ developers confirm ?
This has been discussed here several times. I think Marcel has done
something here. Have you tried the latest MH patch ?? (have not tried it
by myself).
Ciao,
Peter
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-11-04 16:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-03 20:36 [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required ! Olivier Le Pogam
2006-11-03 21:26 ` Brad Midgley
2006-11-04 16:38 ` Olivier Le Pogam
2006-11-04 16:42 ` Peter Wippich
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.