Return-Path: Message-ID: <000d01c7002f$a1110aa0$0100a8c0@kayleigh> From: "Olivier Le Pogam" To: "BlueZ development" , "Brad Midgley" References: <001001c6ff87$c1d41f50$0100a8c0@kayleigh> <454BB404.2070606@xmission.com> Date: Sat, 4 Nov 2006 17:38:16 +0100 Mime-Version: 1.0 Subject: Re: [Bluez-devel] To blueZ developers : can't do two "connect" concurrently, help required ! Reply-To: Olivier Le Pogam , BlueZ development List-Id: BlueZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Sender: bluez-devel-bounces@lists.sourceforge.net Errors-To: bluez-devel-bounces@lists.sourceforge.net 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" To: "Olivier Le Pogam" ; "BlueZ development" 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