From: "Olivier Le Pogam" <olepogam@free.fr>
To: "BlueZ development" <bluez-devel@lists.sourceforge.net>
Subject: [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required !
Date: Fri, 3 Nov 2006 21:36:27 +0100 [thread overview]
Message-ID: <001001c6ff87$c1d41f50$0100a8c0@kayleigh> (raw)
[-- 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
next reply other threads:[~2006-11-03 20:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-03 20:36 Olivier Le Pogam [this message]
2006-11-03 21:26 ` [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required ! Brad Midgley
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='001001c6ff87$c1d41f50$0100a8c0@kayleigh' \
--to=olepogam@free.fr \
--cc=bluez-devel@lists.sourceforge.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox