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

📄 socketcommunication.cpp

📁 基于BlueSleil的Sample 查找附近的蓝牙设备 确定安装了蓝牙和BlueSleil
💻 CPP
字号:
#include <stdio.h>
#include "SocketCommunication.h"
#include "Config.h"

BOOL StartIoOnSocket(BOOL bClient)
{
	DWORD dwID;
	if (!bClient)
	{
	    g_hSocket = CreateThread(NULL,0,SockServerThread,0,0,&dwID);
	}
	return TRUE;
}

BOOL StopIoOnSocket(VOID)
{
    if (NULL != g_hSocket)
    {
        if(WaitForSingleObject(g_hSocket, 3000) != WAIT_OBJECT_0)
		    TerminateThread(g_hSocket, -1);
		CloseHandle(g_hSocket);
    }
	return TRUE;
}

DWORD WINAPI SockServerThread(LPVOID param)
{
    WSAData wsaData;
    
    SOCKET sock;
    struct sockaddr_in addr;
    INT32 len = sizeof(addr);
	UINT32 buf_len;
    
    CHAR buf[10];
	UINT32 buflen = 0;
    
    WSAStartup(MAKEWORD(2,0), &wsaData);
    
    sock = socket(AF_INET, SOCK_DGRAM, 0);
    
    addr.sin_family = AF_INET;
    addr.sin_port = htons(g_iSocketPort);
    addr.sin_addr.S_un.S_addr = INADDR_ANY;
    
    bind(sock, (struct sockaddr *)&addr, sizeof(addr));
    
    memset(buf, 0, sizeof(buf));
    while(g_bFlag)
    {
		buf_len = recvfrom(sock, buf, sizeof(buf), 0, (struct sockaddr *)&addr, &len);
        printf("socket recv data:%s\n", buf);
        Sleep(1000);
    }
    
    closesocket(sock);
    
    WSACleanup();
    
    return 0;
}

DWORD WINAPI SockClient(CHAR* buf, UINT32 buf_len)
{
    WSAData wsaData;
    
    SOCKET sock;
    struct sockaddr_in addr;
    
    WSAStartup(MAKEWORD(2,0), &wsaData);
    
    sock = socket(AF_INET, SOCK_DGRAM, 0);
    
    addr.sin_family = AF_INET;
    addr.sin_port = htons(g_iSocketPort);
    addr.sin_addr.S_un.S_addr = inet_addr("192.168.100.200");
    
    sendto(sock, (CHAR*)buf, buf_len, 0, (struct sockaddr *)&addr, sizeof(addr));
    printf("socket send data:%s\n", buf);
    closesocket(sock);
    
    WSACleanup();
	return 0;
}

⌨️ 快捷键说明

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