C++服务器与java进行socket通信案例(二)

2014-11-24 09:44:19 · 作者: · 浏览: 9
ar*)&command, 0, sizeof(command));
if(recv(client, (char*)&command, sizeof(command), 0) == SOCKET_ERROR)
{
cout<<"The Client Socket is Closed\n";
break;
}
else
{
cout<<"The recv command is: ID="< break;
}
}
}
closesocket(client);
return 0;
}

DWORD GetDriverProc(COMMAND command, SOCKET client)
{
cout<<"GetDriver is ok\n";

COMMAND cmd;
memset((char *)&cmd, 0, sizeof(cmd));
cmd.ID = GetDriver;

for(char i='A'; i<'Z'; i++)
{
char x[20] = {i, ':'};

UINT Type = GetDriveType(x);

if(Type==DRIVE_FIXED || Type==DRIVE_REMOVABLE || Type==DRIVE_CDROM)
{
cout< memset((char*)cmd.lparam, 0, sizeof(cmd.lparam));
strcpy((char*)cmd.lparam, x);

if(send(client, (char*)&cmd, sizeof(cmd), 0) == SOCKET_ERROR)
{
cout<<"Send Driver is Error\n";
}
}
}
return 0;
}

DWORD GetDirInfoProc(COMMAND command, SOCKET client)
{
cout<<"GetDir is Ok\n";

FILEINFO fi;
COMMAND cmd;
memset((char*)&cmd, 0, sizeof(cmd));
memset((char*)&fi, 0, sizeof(fi));

strcat((char*)command.lparam, "*.*");
cout<<(char*)command.lparam<<"\n";

CFileFind file;
BOOL bContinue = file.FindFile((char*)command.lparam);

while(bContinue)
{
memset((char*)&cmd, 0, sizeof(cmd));
memset((char*)&fi, 0, sizeof(fi));

bContinue = file.FindNextFile();
if(file.IsDirectory())
{
fi.IsDir = true;
}
strcpy(fi.FileName, file.GetFileName().LockBuffer());
cout<
cmd.ID = GetDirInfo;
memcpy((char*)&cmd.lparam, (char*)&fi, sizeof(fi));

if(send(client, (char*)&cmd, sizeof(cmd), 0) == SOCKET_ERROR)
{
cout<<"Send Dir is Error\n";
}
}
return 0;
}

DWORD ExecFileProc(COMMAND command, SOCKET client)
{
return 0;
}

DWORD DelFileProc(COMMAND command, SOCKET client)
{
return 0;
}

DWORD FileInfoProc(COMMAND command, SOCKET client)
{
return 0;
}

DWORD CreateDirProc(COMMAND command, SOCKET client)
{
return 0;
}

DWORD DelDirProc(COMMAND command, SOCKET client)
{
return 0;
}

BOOL DeleteDirectory(char *DirName)
{
return 0;
}

DWORD GetFileProc