【BTStack】实现 Socket 通信

添加一个功能,在 PC 上开发一个上位机软件,实现与 BTStack 通信,考虑使用虚拟串口,网上实现方法很多,需要先安装一个工具把 com 虚拟出来(成对的 com 口),在双方的代码中使用类似于 open 的方式打开 com 口,具体没有去实现。

换成 Socket 通信,比较简单,不需要去虚拟串口,大概实现如下(代码都是在网上 copy 的):

server端:

#include <WinSock2.h>
//#pragma comment(lib,"ws2_32.lib")
...
servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
bind(servSock, (SOCKADDR*)& sockAddr, sizeof(SOCKADDR));
listen(servSock, 20);
clntSock = accept(servSock, (SOCKADDR*)& clntAddr, &nSize);

while(1){
    ...
    send(clntSock, str, strlen(str) + sizeof(char), NULL);
    recv(clntSock, szBuffer, MAXBYTE, NULL);
}

closesocket(clntSock);
closesocket(servSock);

client端:

#include <WinSock2.h>
...
clntSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
connect(clntSock, (SOCKADDR*)& sockAddr, sizeof(SOCKADDR));

while(1){
    ...
    send(clntSock, str, strlen(str) + sizeof(char), NULL);
    recv(clntSock, szBuffer, MAXBYTE, NULL);
}

closesocket(clntSock);

BTStack 编译中需要添加编译选项 -lws2_32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值