c++ socket编程的疑问
socket类
class mclient{
private:
SOCKET sock;
sockaddr_in saddr;
int len;
char buf[4096];
public:
mclient()
{
sock=socket(AF_INET,SOCK_STREAM,0);
len=sizeof(saddr);
}
bool mconnect(char* addr,int port){
saddr.sin_family=AF_INET;
saddr.sin_port=htons(port);
saddr.sin_addr.s_addr=inet_addr(addr);
if(connect(sock,(struct sockaddr*)&saddr,len)==SOCKET_ERROR)
{
return false;
}
else
{
return true;
}
}
void close(){
closesocket(sock);
}
void msend(const char* mes,int length)
{
send(sock,mes,length,0);
}
bool receive(int flag){
memset(buf,0,4096);
if(recv(sock,buf,4096,0)==SOCKET_ERROR){
return false;
}
else
{
return true;
}
}
};
连接目标板的函数1
void Connect_Target_Board(void)
{
mclient a;
if(a.mconnect(bIpAddr,dwPort))
{
ConnectStatus = 1;
}
else
{
ConnectStatus = 0;
}
}
连接目标板的函数2
mclient a;
void Connect_Target_Board(void)
{
if(a.mconnect(bIpAddr,dwPort))
{
ConnectStatus = 1;
}
else
{
ConnectStatus = 0;
}
}
为什么函数1能够正常连接目标板,而函数2却不能连接目标板,只不过将类变量a弄成一个全局变量而已