CC++建立控制台程序后如何socket编程将ip, 用户名, 密码分别传送给服务器(注意不是cmd中手动输入)

CC++建立控制台程序后如何socket编程将ip, 用户名, 密码分别传送给服务器(注意不是cmd中手动输入),第1张

//客户端

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

单片机中雹桐游断入口地址间确实只有8个字节的空间,所以一般在中断地址入口放一条跳转指令,跳到其他用户程序空间去执行中断服务程序。一条跳转指令有2~3个字节就可以了轮毕。比如:LJMP INT_TIMER0 就是长跳转到INT_TIMER0,占用3个地址空间。

用时用SJMP,这个指令只占用2个字源销节空间。

跳转指令在C语言中,相当于GOTO。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8263523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存