有关蓝牙Socket的连接问题

lailzhihou 2010-08-12 06:35:55
我现在是在PC上有连接一个USB蓝牙,在CE的平台上有连接一个串口接口的蓝牙,现在使用CE自带的蓝牙程序可以实现和PC的配对,从PC传送文件到CE上。
现在我想使用Socket的方式来对两个蓝牙进行建立连接,然后传送一些文本数据。
现在我把PC作为Server端,在PC端已经启动了,知道Acept都正常。等待Client连接。
在CE端作为Client端,现在CE端当进行Connect的时候就会错误,GetLastError = 10047(使用了与请求的协议不兼容的地址。)
我有反过来测试,即把CE端作为Server,PC端来Connect也一样的错误,为什么会这样呢??
下面是PC端Server代码:

m_lisSocket = socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
if (m_lisSocket == INVALID_SOCKET)
{
MessageBox((TEXT("Create Socket error")));
}

SOCKADDR_BTH sa;
memset (&sa, 0, sizeof(sa));
unsigned char channel = 1;
sa.addressFamily = AF_BTH;
sa.port = channel & 0xff;

if (bind (m_lisSocket, (SOCKADDR *)&sa, sizeof(sa)))
{
//Perform error handling
closesocket (m_lisSocket);
MessageBox((TEXT("bind Socket error")));
return ;
}

int namelen = sizeof(sa);
if (getsockname(m_lisSocket, (SOCKADDR *)&sa, &namelen)) {
MessageBox((TEXT("getsockname Socket error")));
closesocket (m_lisSocket);
return ;
}



if (listen (m_lisSocket, 5))
{
//Perform error handling
closesocket (m_lisSocket);
MessageBox((TEXT("listen Socket error")));
return ;
}

SOCKADDR_BTH sa2;
int size = sizeof(sa2);
SOCKET s2 = accept (m_lisSocket, (SOCKADDR *)&sa2, &size);


下面是CE端Clinet代码:

UpdateData(TRUE);
UCHAR channel = 1;

SOCKET client_socket = socket (AF_BT, SOCK_STREAM, BTHPROTO_RFCOMM);
if (client_socket == INVALID_SOCKET)
{
MessageBox((TEXT("Create Socket error")));
}

SOCKADDR_BTH sa;
memset (&sa, 0, sizeof(sa));
sa.btAddr = m_btaddr[m_edit_connect_index]; //b is a BT_ADDR variable
sa.port = channel & 0xff;

if (connect (client_socket, (SOCKADDR *)&sa, sizeof(sa)))
{
//Perform error handling.
RETAILMSG(1, (TEXT("error = %d\r\n"), WSAGetLastError()));
closesocket (client_socket);
MessageBox((TEXT("connect Socket error")));

return ;
}
...全文
320 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lailzhihou 2010-08-16
  • 打赏
  • 举报
回复
加一句:sa.addressFamily = AF_BT;
就OK了.......
lailzhihou 2010-08-13
  • 打赏
  • 举报
回复
看了下,和我的做法一样啊,但为什么我的不行呢
郁闷啊
Ei 2010-08-13
  • 打赏
  • 举报
回复
楼主好好看看这个吧。
http://www.vckbase.com/document/viewdoc/?id=1779
InsaneCode 2010-08-13
  • 打赏
  • 举报
回复
都还没上班~~哈哈
lailzhihou 2010-08-13
  • 打赏
  • 举报
回复
顶一下,没人来回复...

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧