为何在同一台机子上传递信息,服务器接收的信息为空???顶者有分!!!!
//用户信息的结构
typedef struct
{
long id;
char nickname[20];
char sex[10];
int age;
char address[50];
char password[20];
}USER_INF,*LPUSER_INF;
SOCKET sClient;
SOCKADDR_IN inetAddr;
USER_INF userInf;
sClient=socket(AF_INET, SOCK_STREAM, 0);
inetAddr.sin_addr.s_addr=inet_addr("127.0.0.1"); //联接本机的IP
inetAddr.sin_family=AF_INET;
inetAddr.sin_port=htons(SERVER_PORT);
if(connect( sClient, (struct sockaddr *)&inetAddr, sizeof (inetAddr)) == SOCKET_ERROR)
{
AfxMessageBox("注册失败:不能连接Net服务器");
return ;
}
UpdateData(TRUE);
m_cbSex.GetLBText(m_cbSex.GetCurSel(), m_strSex);
if(m_strPwd != m_strVerifyPwd)
{
AfxMessageBox("密码与确认密码不一致");
return ;
}
if(m_strNickname == _T("") || m_nAge==0 || m_strAddress==_T(""))
{
AfxMessageBox("请填充所有选项");
return ;
}
memset(&userInf,0,sizeof(USER_INF));
userInf.id = 0;
strcpy(userInf.nickname, (LPCTSTR)m_strNickname);
strcpy(userInf.sex, (LPCTSTR)m_strSex);
userInf.age = m_nAge;
strcpy(userInf.address, (LPCTSTR)m_strAddress);
strcpy(userInf.password, (LPCTSTR)m_strPwd);
//send "REGT"信息
memset(buff,0,sizeof(buff));
sprintf(buff,"%s","REGT");
if(send(sClient,buff,sizeof(buff),0) == SOCKET_ERROR)
{
AfxMessageBox("注册失败:REGT 信息 send 出错");
closesocket(sClient);
return ;
}
//send userInf
if(send(sClient,(char *)&userInf,sizeof(USER_INF),0) == SOCKET_ERROR) //USER_INF userInf已被赋值
{
AfxMessageBox("注册失败:REGT userInf send 出错");
closesocket (sClient);
return ;
}
服务端主要代码如下:
//保存在线用户的结构
typedef struct
{
char ip[16]; //用户的IP地址
SOCKET sock;
UINT currentnumer; //当前用户排第几位
}ONLINEUSER_INF,*LPONLINEUSER_INF;
ONLINEUSER_INF userinfo;
USER_INF inf;
recv(userinfo.sock ,str,10,0); //userinfo.sock 为客户端的SOCKET
CString string;
string.Format ("%s",str);
if(string==_T("REGT"))
{
memset(&inf,0,sizeof(USER_INF));
if(recv(userinfo.sock,(char *)&inf,sizeof(USER_INF),0)== SOCKET_ERROR)
{
closesocket(userinfo.sock);
AfxMessageBox("REGT recv命令出错");
return 1;
}
}
编译无错误显示,但是服务器接收的USER_INF结构信息为空,怎么回事啊???请大哥们指教,谢谢!!!
顶者有分!!!!
相关推荐
网吧网管工作职责精选.doc
做好记录,交接班时通过交班本传递信息。5. 协助完成上司布置的任务,未完成的交接给下一班。6. 下班前写好交班记录,确保下一班了解工作状况。7.
NC加工和PLC接口
通过接口,PLC和NC能够相互传递信息,实现整个生产过程的智能化和自动化。在FANUC系统中,PLC与NC的数据交换通常涉及到特定的变量,这些变量被用来指示或响应机床的状态。
人机交互:第2章 交互设备.pptx
人机系统由人子系统(如感觉器官、神经系统和运动器官)、机子系统(如控制器、主机和显示器)和人机界面(负责信息传递)三部分构成。2.2 输入设备输入设备是人向计算机传递信息的工具,主要包括:1.
实验2.6.2 Python 基础之自定义函数
但我们希望有的函数和变量别人可以使用,有的函数和变量仅仅可以在模块内部使用,这就是 Python 作用域的相关问题。函数的返回值只有一个,但有时我们会发现有的函数好像有多个返回值,其实这里的“多个”并不是指多个返回值。在 Python 中,正常的函数和变量名是公开的(public),是可以被直接引用的。本实训的目标是让学习者了解并掌握函数结构的相关知识,本关的小目标则是让学习者先了解并掌握函数参数的有关知识。接着,在缩进块中编写函数体,函数的第一行语句一般是写文档字符串,用于存放函数说明,也可以选择不写;
别再硬啃C代码了!用Simulink的Matlab Function模块手把手教你搭建CRC8校验模型(附完整M脚本)
本文详细介绍了如何利用Simulink的Matlab Function模块轻松实现CRC8校验模型,替代传统的C代码编写。通过可视化建模和即时验证,开发者可以高效完成算法设计,并自动生成嵌入式代码。文章包含完整的M脚本示例和工程实践技巧,特别适合嵌入式系统开发人员提升工作效率。


网络编程
