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弄成一个全局变量而已
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弄成一个全局变量而已
...全文
相关推荐
c++ socket编程实例(服务端及客户端)
本代码是c++ socket编程实例。包含客户端和服务端,可以实现客户端发送消息,服务端接收消息并写入日志。 server.cpp为服务端。 client.cpp为客户端。
Windows C/C++ Socket 编程
作者很懒,本文没有摘要。
C++SOCKET多线程网络编程实现多个客户端与服务器通信
C++SOCKET多线程网络编程实现多个客户端与服务器通信计算简单数学算式设计思路代码展示 设计思路 程序设计分服务器端与客户端,其中,服务器端采用多线程,对于每个客户端连接时,均新建一个服务线程,之后判断客户端发来的信息是不是一个数学算式,是的话就返回计算结果给客户端。 客户端同样采用多线程,主线程是获取用户的输入,将输入发给服务器端。另一个线程则是监听服务器返回的结果,如果有返回就把结果打印到...
基于C++ socket编程实现的websocket服务器
利用C++ SOCKET编程,自我实现的一个websocket服务器,能够比较好的移植,没有使用开源库
c++ socket 编程
c++与socket之间通过socket编程,消息是以结构体的方式发送。


