vc用微软的bluetooth api如何传送文件

q11112345 2010-07-19 10:42:42
利用微软蓝牙的API,以SOCKET方式,看了例子,现在可以进行数据通讯,但是不知道怎么才可以传文件,代码如下:
SOCKET client_socket = socket (AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
if (client_socket!=INVALID_SOCKET)
{
GUID guid_SPP = SerialPortServiceClass_UUID;
SOCKADDR_BTH sa;
memset (&sa, 0, sizeof(sa));
sa.addressFamily=AF_BTH;
sa.btAddr = bd; sa.serviceClassId=OBEXFileTransferServiceClass_UUID;
if (connect (client_socket,(SOCKADDR *)&sa,sizeof(sa)) == SOCKET_ERROR)
{
client_socket = INVALID_SOCKET;
wprintf(L"connet failed %d\r\n",WSAGetLastError());
getch();
return WSAGetLastError();
}

}
iResult=send(client_socket,"hello,from client",100,0);//这是传数据,如何传文件。
if (iResult == SOCKET_ERROR) {
wprintf(L"send() failed with error: %d\n", WSAGetLastError());
closesocket(client_socket);
WSACleanup();
getch();
return 1;
}
...全文
866 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuaichi1990 2012-02-23
  • 打赏
  • 举报
回复
本帖对我来说太有用了!尤其是4楼!帮我找到了一个方向!
jilianglijie 2011-07-25
  • 打赏
  • 举报
回复
强帖。。。。。
CKiori 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 q11112345 的回复:]

呵呵,我现在可以发文件了,但是不知道如何发大文件,貌似send的时候必须按照obex协议写好信息头,才能使手机接收到文件。但是是一次性发送。如果文件很多的话,一次性发送貌似不现实啊。如果分次发送,每次都写信息头,手机就会当成是另外一个文件。这样就会发送很多文件名相同的文件。不知道怎么办。
[/Quote]
老大,能不能把具体实现说一下,让大家都来分享一下嘛!我也在找这方面的资料,太难找了
herman~~ 2010-08-04
  • 打赏
  • 举报
回复
自定义协议就可以了..无非是传输2进制数据,最好拼成一个文件
weblai 2010-08-04
  • 打赏
  • 举报
回复
听说win7 sp1强化了蓝牙功能。
yuhuaijun 2010-07-20
  • 打赏
  • 举报
回复
没做过, 应该也是以字节流来传送的
友情帮顶, 期待高手
q11112345 2010-07-20
  • 打赏
  • 举报
回复
呵呵,我现在可以发文件了,但是不知道如何发大文件,貌似send的时候必须按照obex协议写好信息头,才能使手机接收到文件。但是是一次性发送。如果文件很多的话,一次性发送貌似不现实啊。如果分次发送,每次都写信息头,手机就会当成是另外一个文件。这样就会发送很多文件名相同的文件。不知道怎么办。
vincent3952328 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 q11112345 的回复:]
我是想从PC端发送文件到手机,发送文件的关键问题是如何让手机知道我发送的文件名。有没有发送文件的函数?或者是不是需要用到某个协议,如OBEXObjectPushServiceClass_UUID,OBEXFileTransferServiceClass_UUID,如何利用这些协议呢?
[/Quote]
有这方面的函数,刚我已经说了,微软在这个方面的api没有公开,我当时做的东西也是取得传输文件的名字和路径
q11112345 2010-07-20
  • 打赏
  • 举报
回复
我是想从PC端发送文件到手机,发送文件的关键问题是如何让手机知道我发送的文件名。有没有发送文件的函数?或者是不是需要用到某个协议,如OBEXObjectPushServiceClass_UUID,OBEXFileTransferServiceClass_UUID,如何利用这些协议呢?
vincent3952328 2010-07-20
  • 打赏
  • 举报
回复
我以前做过这个,应该是以文件流的形式传输的,但是实现起来很麻烦,尝试了一下最后放弃了,其实在蓝牙开发这方面微软提供了文件传输的接口,但是不是公开的,这个我查过了,上层的蓝牙应用服务都没有公开,需要自己去实现;我建议你可以用其他蓝牙厂商提供的开发包进行编写,网上有破解的,安装后会提供一个动态链接库,这样就可以用它提供的api进行蓝牙的开发了,这个我已经实现成功了,还是比较容易的。
ForestDB 2010-07-20
  • 打赏
  • 举报
回复
fopen文件,fread之,send之,fclose之。
当然这之前可能要传额外的信息给接受端,告知接下来要传个文件给它,这个协议自己定。
饭fan有引力 2010-07-20
  • 打赏
  • 举报
回复
还是一样的原理的,都是用字节流来传送的

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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