From: Brad Midgley <bmidgley@xmission.com>
To: Olivier Le Pogam <olepogam@free.fr>,
BlueZ development <bluez-devel@lists.sourceforge.net>
Subject: Re: [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required !
Date: Fri, 03 Nov 2006 14:26:28 -0700 [thread overview]
Message-ID: <454BB404.2070606@xmission.com> (raw)
In-Reply-To: <001001c6ff87$c1d41f50$0100a8c0@kayleigh>
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
next prev parent reply other threads:[~2006-11-03 21:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2006-11-04 16:38 ` Olivier Le Pogam
2006-11-04 16:42 ` Peter Wippich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=454BB404.2070606@xmission.com \
--to=bmidgley@xmission.com \
--cc=bluez-devel@lists.sourceforge.net \
--cc=olepogam@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.