⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 蓝牙socket 通信的服务端例子 可以和手机java通信
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/rfcomm.h>
int main( int argc , char **argv)
{
     struct sockaddr_rc loc_addr = { 0 }, rem_addr = { 0 };
	char bufrecv[1024] = { 0 };
	char bufsend[1024] = { 51265134643657jkgfkdfkfgkgfkdfkkdghkghkghkhgkghkhkh };
	char bufaddr[1024] = { 0 };
	int lensend;

	char CfgFilePath[80];
	char msg[1000];
	int bluesendsize=512;

	

	int socketblue, phoneclient, bytes_read, bytes_write=0;
	socklen_t length_rem_addr = sizeof(rem_addr);

	// allocate socket
	socketblue = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

	// bind socket to port 1 of the first available 
	// local bluetooth adapter
	loc_addr.rc_family = AF_BLUETOOTH;
	loc_addr.rc_bdaddr = *BDADDR_ANY;
	loc_addr.rc_channel = (uint8_t) 1;
	bind(socketblue , (struct sockaddr *)&loc_addr, sizeof(loc_addr));

	// put socket into listening mode
	listen(socketblue, 1);
	printf("主进程在活动.............");

	while(1)//
	{
		printf("开始接收蓝牙手机的链接等待..............................");

		if ((phoneclient = accept(socketblue, (struct sockaddr *)&rem_addr, &length_rem_addr)) >0)
		{

			printf("蓝牙server: got connection socket   %d ",phoneclient);

		}



		ba2str( &rem_addr.rc_bdaddr,bufaddr );
		fprintf(stderr, "蓝牙接口accepted connection from %s\n", bufaddr);


		// read data from the phoneclient
		while(1){
			printf("开始received \n");
			bytes_read = recv(phoneclient, bufrecv, sizeof(bufrecv),0);
			if( bytes_read > 0 ) {
				printf("received [%s]\n", bufrecv);
				//processPhoneMessage((unsigned char*)bufrecv,  (unsigned char*)bufsend);   
				printf("需要发送给蓝牙手机的消息是 \n");
				printf((unsigned char*)bufsend);   
				lensend=sizeof(bufsend);
				while(lensend>0)
				{
					bytes_write =send(phoneclient, bufsend+bytes_write, bluesendsize,0);

					if (bytes_write>0)
					{
						printfUINT32("发送成功 发送字节数为",bytes_write);
						lensend=lensend-bytes_write;
					}

					else
					{
						printf("send 错误\n");
						printf("关闭phoneclient\n");
						close(phoneclient);
						break;
					}
				}
			}
			else
			{
				printf("received 错误\n");
				break;
			}

		}
		printf("关闭phoneclient\n");
		close(phoneclient);

	}

	close(socketblue);
	return 0;

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -