?? bth_connection.cpp
字號:
#include "stdafx.h"
#include "BTH_Connection.h"
#include "Base64.h"
using namespace std;
BTH_Connection::BTH_Connection(){
BTH_Conn = new BTH_Mobile_Conn();
}
BTH_Connection::~BTH_Connection(){
}
void BTH_Connection::convertCharToTCHAR(char *c, TCHAR* t){
int i = 0;
while (c[i] != '\0'){
t[i] = (TCHAR) c[i];
i++;
}
t[i] = (TCHAR) c[i];
}
void BTH_Connection::convertTCHARToChar(char *c, TCHAR* t){
int i = 0;
while (t[i] != '\0'){
c[i] = (char) t[i];
i++;
}
c[i] = (char) t[i];
}
void BTH_Connection::Replace( char *str, char c1, char c2 )
{
unsigned int i;
for( i = 0; i < strlen( str ); i++ )
if( strcmp(str,(char*)c1)==0 )
str = &c2;
}
bool BTH_Connection::ListenConnection(void){
int errCode = BTH_Conn->ListenMsg();
bool IsListenSuccess = false;
switch(errCode){
case 0:
IsListenSuccess = false;
break;
case 1:
IsListenSuccess = true;
break;
default:
break;
}
return IsListenSuccess;
}
bool BTH_Connection::AcceptConnection(void){
BTH_Conn->AcceptMsg();
return true;
}
bool BTH_Connection::StartBTH(void){
if(BTH_Conn->InitialiseBluetooth()==0){
return false;
}
if(BTH_Conn->InitialiseWinsock()==0){
return false;
}
int intErrCode = BTH_Conn->InitialiseSocket();
if(intErrCode ==0){
return false;
}
else if(intErrCode == 1){
return false;
}
return true;
}
bool BTH_Connection::RegisterBlueToothService(void){
bool IsRegSuccess = false;
int errCode = BTH_Conn->RegisterBTHService();
switch(errCode){
case 0:
IsRegSuccess = false;
break;
case 1:
IsRegSuccess = false;
break;
case 2:
IsRegSuccess = true;
break;
default:
break;
}
return IsRegSuccess;
}
char* BTH_Connection::Recieve(void){
return BTH_Conn->RecieveMsg();
}
bool BTH_Connection::Send(char* strMsg){
BTH_Conn->SendMsg(strMsg);
return true;
}
bool BTH_Connection::SendMsg(char* strMsg){
BTH_Conn->SendMsg(strMsg);
return true;
}
std::string* BTH_Connection::RecieveMessage(void){
char* buffer = Recieve();
std::cout<<"="<<buffer<<"="<<endl;
char* tmp;
std::string* result;
int intPack=0;
int intLastPackSize =0;
bool IsSplit = false;
char* part;
std::string* strNull = new string("");
//---pack num ----
tmp = strtok(buffer,"|");
if(tmp!=NULL){
intPack = atoi(tmp);
}else{
return strNull;
}
//-----last pack size-----
tmp = strtok(NULL,"|");
if(tmp!=NULL){
intLastPackSize = atoi(tmp);
}else{
return strNull;
}
if(intPack==0){
tmp = strtok(NULL,"|");
std::cout<<"|"<<tmp<<"|"<<std::endl;
char* tt = new char[intLastPackSize];
strcpy(tt,"");
strncat(tt,tmp,intLastPackSize);
std::string s(tt);
std::cout<<"|"<<s<<"|"<<endl;
string* ss=new string(base64_decode(s));
return ss;
}else{
part = new char[intPack*50+intLastPackSize];
strcpy(part,"");
int count =0;
while(intPack>=0){
std::string* ttt = new std::string(Recieve());
if(intPack>0)
strcat(part,ttt->c_str());
else
strncat(part,ttt->c_str(),intLastPackSize);
intPack--;
}
std::string s(part);
std::cout<<"|"<<part<<"|"<<endl;
result=new string(base64_decode(s));
}
return result;
}
void BTH_Connection::CloseConnection(void){
BTH_Conn->TerminateSocket();
BTH_Conn->TerminateWinsock();
}
bool BTH_Connection::IsDisconnected(void){
return BTH_Conn->IsDisconnect();
}
void BTH_Connection::Test(){
BTH_Conn->InitialiseWinsock();
BTH_Conn->InitialiseSocket();
BTH_Conn->RegisterBTHService();
BTH_Conn->ListenMsg();
// printf( "Waiting for a client to connect...\n" );
BTH_Conn->AcceptMsg();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -