永发信息网

急!求教!VC++6.0实现蓝牙通讯

答案:2  悬赏:0  手机版
解决时间 2021-03-21 04:13
  • 提问者网友:雾里闻花香
  • 2021-03-20 04:43
请问如何利用VC++6.0实现计算机与蓝牙设备的通讯?

不是.我是想用vc++编写一个通过蓝牙发送数据的程序~
最佳答案
  • 五星知识达人网友:逐風
  • 2021-03-20 04:59
如果是计算机要连接蓝牙设备,在计算机里面找到蓝牙的图表,双击后就会出现一个蓝牙设备向导,你点添加电脑就会自动搜索电脑周围的蓝牙设备,配对成功后就可以进行蓝牙通讯了,不过还有一个就是配对成功后点一个允许该设备任何时候连接,这样就可以很好的使用了
全部回答
  • 1楼网友:青灯有味
  • 2021-03-20 05:38
1、一个端口可以为多个人服务的,只要你们的端口是一致的。 2、界面加载时不需要建立连接,只有发消息传文件的时候才建立连接。登录以后,开启一个监听的线程来监听发来的消息就行了,登录时要是广播的话就会给这个端口的所有用户发消息。 3、udp的话send发送以后,主窗体启动的监听程序会自己receive,如果是tcp的话,需要建立连接以后再receive。 给你个最简单的 服务器端客户端程序 是在控制台下面开发 服务器端 // server.cpp : defines the entry point for the console application. // #include "stdafx.h" #include "winsock2.h" #pragma comment(lib, "ws2_32.lib") #include using namespace std; int _tmain(int argc, char* argv[]) { const int buf_size = 64; wsadata wsd; //wsadata变量 socket sserver; //服务器套接字 socket sclient; //客户端套接字 sockaddr_in addrserv;; //服务器地址 char buf[buf_size]; //接收数据缓冲区 char sendbuf[buf_size];//返回给客户端得数据 int retval; //返回值 //初始化套结字动态库 if (wsastartup(makeword(2,2), &wsd) != 0) { cout << "wsastartup failed!" << endl; return 1; } //创建套接字 sserver = socket(af_inet, sock_stream, ipproto_tcp); if(invalid_socket == sserver) { cout << "socket failed!" << endl; wsacleanup();//释放套接字资源; return -1; } //服务器套接字地址 addrserv.sin_family = af_inet; addrserv.sin_port = htons(4999); addrserv.sin_addr.s_addr = inaddr_any; //绑定套接字 retval = bind(sserver, (lpsockaddr)&addrserv, sizeof(sockaddr_in)); if(socket_error == retval) { cout << "bind failed!" << endl; closesocket(sserver); //关闭套接字 wsacleanup(); //释放套接字资源; return -1; } //开始监听 retval = listen(sserver, 1); if(socket_error == retval) { cout << "listen failed!" << endl; closesocket(sserver); //关闭套接字 wsacleanup(); //释放套接字资源; return -1; } //接受客户端请求 sockaddr_in addrclient; int addrclientlen = sizeof(addrclient); sclient = accept(sserver,(sockaddr far*)&addrclient, &addrclientlen); if(invalid_socket == sclient) { cout << "accept failed!" << endl; closesocket(sserver); //关闭套接字 wsacleanup(); //释放套接字资源; return -1; } while(true){ //接收客户端数据 zeromemory(buf, buf_size); retval = recv(sclient, buf, buf_size, 0); if (socket_error == retval) { cout << "recv failed!" << endl; closesocket(sserver); //关闭套接字 closesocket(sclient); //关闭套接字 wsacleanup(); //释放套接字资源; return -1; } if(buf[0] == '0') break; cout << "客户端发送的数据: " << buf <> sendbuf; send(sclient, sendbuf, strlen(sendbuf), 0); } //退出 closesocket(sserver); //关闭套接字 closesocket(sclient); //关闭套接字 wsacleanup(); //释放套接字资源; return 0; } 客户端 // client.cpp : defines the entry point for the console application. // #include "stdafx.h" #include "winsock2.h" #include #pragma comment(lib, "ws2_32.lib") using namespace std; bool recvline(socket s, char* buf); //读取一行数据 int main(int argc, char* argv[]) { const int buf_size = 64; wsadata wsd; //wsadata变量 socket shost; //服务器套接字 sockaddr_in servaddr; //服务器地址 char buf[buf_size]; //接收数据缓冲区 char bufrecv[buf_size]; int retval; //返回值 //初始化套结字动态库 if (wsastartup(makeword(2,2), &wsd) != 0) { cout << "wsastartup failed!" << endl; return -1; } //创建套接字 shost = socket(af_inet, sock_stream, ipproto_tcp); if(invalid_socket == shost) { cout << "socket failed!" << endl; wsacleanup();//释放套接字资源 return -1; } //设置服务器地址 servaddr.sin_family =af_inet; servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); servaddr.sin_port = htons((short)4999); int nservaddlen = sizeof(servaddr); //连接服务器 retval=connect(shost,(lpsockaddr)&servaddr, sizeof(servaddr)); if(socket_error == retval) { cout << "connect failed!" << endl; closesocket(shost); //关闭套接字 wsacleanup(); //释放套接字资源 return -1; } while(true){ //向服务器发送数据 zeromemory(buf, buf_size); cout << " 向服务器发送数据: "; cin >> buf; retval = send(shost, buf, strlen(buf), 0); if (socket_error == retval) { cout << "send failed!" << endl; closesocket(shost); //关闭套接字 wsacleanup(); //释放套接字资源 return -1; } //recvline(shost, bufrecv); recv(shost, bufrecv,5 , 0); // 接收服务器端的数据, 只接收5个字符 cout << endl <<"从服务器接收数据:" << bufrecv; } //退出 closesocket(shost); //关闭套接字 wsacleanup(); //释放套接字资源 return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯