c++ socket编程的疑问

zjtzlqr zjtzlqr 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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弄成一个全局变量而已

...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
zjtzlqr
C++ 语言 65,214 成员 250,514 内容