E:\VC6.0\Server\Server.cpp(86) : error C2556: 'unsigned short __stdcall SListen(void *)' : overloaded function differs only by return type from 'unsigned long __stdcall SListen(void *)'
        E:\VC6.0\Server\Server.cpp(19) : see declaration of 'SListen'
E:\VC6.0\Server\Server.cpp(86) : error C2371: 'SListen' : redefinition; different basic types
        E:\VC6.0\Server\Server.cpp(19) : see declaration of 'SListen'// Server.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include "Server.h"
#include "sys.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endiftypedef struct
{
int ID;
BYTE lparam[2048];
}COMAND;DWORD WINAPI SListen (LPVOID lpParam);
DWORD GetDriverProc(COMAND comand,SOCKET socket);/////////////////////////////////////////////////////////////////////////////
// The one and only application objectCWinApp theApp;using namespace std;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
WSADATA wsadata;
WORD ver = MAKEWORD(2,2);
WSAStartup(ver,&wsadata);

SOCKET serversocket = socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN serveradd;
serveradd.sin_family =AF_INET;
serveradd.sin_port =htons(8803);
serveradd.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
bind(serversocket,(SOCKADDR*)&serveradd,sizeof(SOCKADDR));
SOCKET socket;
listen(serversocket,100);
TCHAR cBuffer[100];
while(1)
{ if((socket=accept(serversocket,0,0))!=INVALID_SOCKET)
{
if(SOCKET_ERROR!=send(socket,"Password",sizeof("Password"),0))
{
cout<<"成功发送"<<endl;
}
if(SOCKET_ERROR==recv(socket,cBuffer,sizeof(cBuffer),0))
{
cout<<"密码接收失败"<<endl;
cout<<GetLastError()<<endl;
}
else
{
if (0==lstrcmp("8803",cBuffer))
{
if(SOCKET_ERROR!=send(socket,"TRUE",sizeof("TRUE"),0))
{
cout<<"密码正确"<<endl;
CreateThread(NULL,0,SListen,(LPVOID)socket,0,NULL);
}
else
cout<<"yes"<<GetLastError()<<endl;
}
else
{
if(SOCKET_ERROR!=send(socket,"FALSE",sizeof("FALSE"),0))
cout<<"密码不正确"<<endl;
else
cout<<"NO"<<GetLastError()<<endl;
}
}
}
}
closesocket(socket);
closesocket(serversocket);
WSACleanup();
return 0;
}
WORD WINAPI SListen(LPVOID lpParam)
{
SOCKET clint = (SOCKET)lpParam;
COMAND comand;
while(TRUE)
{
memset((char *)&comand,0,sizeof(comand));
if(SOCKET_ERROR==recv(clint,(char*)&comand,sizeof(comand),0))
{
cout<<"接收客户端指令错误"<<endl;
break;
}
else
{
switch(comand.ID)
{
case GetDriver:
GetDriverProc(comand,clint);
break;
default:
break;
}
} }
closesocket(clint);
return 0;
}DWORD GetDriverProc(COMAND comand,SOCKET socket)
{
COMAND cmd ;
memset((char *)&cmd,0,sizeof(cmd));
cmd.ID = GetDriver;
for (char i = 'A';i<='Z';++i)
{
char x[20] = {i,':','\0'};
UINT type = GetDriveType(x);
if (type==DRIVE_FIXED||type==DRIVE_REMOVABLE||DRIVE_CDROM)
{
//不认别变量lparam
memset((char *)(cmd.lparam),0,sizeof(cmd.lparam));
lstrcpy((char *)(cmd.lparam),x);
if(send(socket,(char *)&cmd,sizeof(cmd),0)==SOCKET_ERROR)
{
cout<<"反馈给客户机信息失败"<<endl;
}
}
}

return 0;
}