C/C++建立控制台程序后如何socket编程将ip, 用户名, 密码分别传送给服务器(注意不是cmd中手动输入)
2015-05-27 · 知道合伙人互联网行家
关注
展开全部
//客户端
memset(sendMess.name,0,20);
memset(sendMess.mima,0,20);//赋值语句
int ServerSession::send_user(struct user_infor sendMess)
{
int nByteSen畅浮扳簧殖毫帮桐爆昆t;
nByteSent=send(m_hSocket,(char *)&sendMess,sizeof(sendMess),0);
if(nByteSent==sizeof(sendMess))
{
char sRecv[256];
int nBytes;
//取得服务器自动回复的消息
nBytes=recv(m_hSocket,sRecv,255,0);
if(nBytes==SOCKET_ERROR)
{
AfxMessageBox("接受数据失败");
return 1;
}
sRecv[nBytes]='\0';
//显示回复信息
if(!strcmp(sRecv,"登陆成功!"))
flag=1;
else
flag=0;
AfxMessageBox(sRecv);
if(closesocket(m_hSocket)==SOCKET_ERROR)
{
AfxMessageBox("关闭连接失败");
m_hSocket=NULL;
return 1;
}
}
}
//服务器端
UINT Socket_Session::Log_Set_Run()//获取客户端发送的消息
{
SOCKADDR_IN sa_addr;
ASSERT(g_hSocket!=NULL);
int nLen=sizeof(SOCKADDR);
//等待接受客户端的连接请求
g_hAcceptSocket=accept(g_hSocket,(sockaddr *)&sa_addr,&nLen);
g_hAcceptObject[Num++]=g_hAcceptSocket;
m_strIP = inet_ntoa(sa_addr.sin_addr);
if(g_hAcceptSocket==INVALID_SOCKET)
{
if(WSAGetLastError()!=WSAEINTR)
AfxMessageBox("接受连接失败");
return 1;
}
//接受到一个客户端的请求后,立即启动一个线程重新开始监听
AfxBeginThread(Log_Set,this);
//处理与客户端的通信
AfxBeginThread(Proposal_Message,this);
return 0;
memset(sendMess.name,0,20);
memset(sendMess.mima,0,20);//赋值语句
int ServerSession::send_user(struct user_infor sendMess)
{
int nByteSen畅浮扳簧殖毫帮桐爆昆t;
nByteSent=send(m_hSocket,(char *)&sendMess,sizeof(sendMess),0);
if(nByteSent==sizeof(sendMess))
{
char sRecv[256];
int nBytes;
//取得服务器自动回复的消息
nBytes=recv(m_hSocket,sRecv,255,0);
if(nBytes==SOCKET_ERROR)
{
AfxMessageBox("接受数据失败");
return 1;
}
sRecv[nBytes]='\0';
//显示回复信息
if(!strcmp(sRecv,"登陆成功!"))
flag=1;
else
flag=0;
AfxMessageBox(sRecv);
if(closesocket(m_hSocket)==SOCKET_ERROR)
{
AfxMessageBox("关闭连接失败");
m_hSocket=NULL;
return 1;
}
}
}
//服务器端
UINT Socket_Session::Log_Set_Run()//获取客户端发送的消息
{
SOCKADDR_IN sa_addr;
ASSERT(g_hSocket!=NULL);
int nLen=sizeof(SOCKADDR);
//等待接受客户端的连接请求
g_hAcceptSocket=accept(g_hSocket,(sockaddr *)&sa_addr,&nLen);
g_hAcceptObject[Num++]=g_hAcceptSocket;
m_strIP = inet_ntoa(sa_addr.sin_addr);
if(g_hAcceptSocket==INVALID_SOCKET)
{
if(WSAGetLastError()!=WSAEINTR)
AfxMessageBox("接受连接失败");
return 1;
}
//接受到一个客户端的请求后,立即启动一个线程重新开始监听
AfxBeginThread(Log_Set,this);
//处理与客户端的通信
AfxBeginThread(Proposal_Message,this);
return 0;
追问
第一句乱码啊“int nByteSen畅浮扳簧殖毫帮桐爆昆t;“
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询