一个sgip的问题,为什么模拟网关登陆失败?

paladinsong 2003-12-11 04:54:18
struct _Seqid
{
unsigned int nSrcNodeNum;
unsigned int nDateTime;
unsigned int nSeqId;
};

struct _Head
{
unsigned int nMsgLen;
unsigned int nCmdId;
_Seqid nSeqNum;
};

struct _Bind
{
_Head head;
unsigned char nLgType;
char sLgName[16];
char sLgPwd[16];
char sReserved[8];
};

int Login(char * sSvrIp, int nSvrPort, int nSeq)
{
WSADATA WSAData;
if (WSAStartup(MAKEWORD(1, 1), &WSAData) != 0)
{
return -1;
}

SOCKET client;
if ((client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET)
{
WSACleanup();
return -2;
}

struct sockaddr_in cin;
cin.sin_family = AF_INET;
cin.sin_addr.s_addr = inet_addr(sSvrIp);
cin.sin_port = htons(nSvrPort);

if (connect(client, (struct sockaddr *)&cin, sizeof(cin)) == SOCKET_ERROR)
{
closesocket(client);
WSACleanup();
return -3;
}

_Bind bind;
bind.head.nMsgLen = sizeof(_Bind);
bind.head.nCmdId = SGIP_BIND;
bind.head.nSeqNum.nSrcNodeNum = 3010012345;
bind.head.nSeqNum.nDateTime = atoi(PackTime(&CTime::GetCurrentTime()));
bind.head.nSeqNum.nSeqId = 0;
bind.nLgType = 1;
strcpy(bind.sLgName, "testuser");
strcpy(bind.sLgPwd, "testpwd");
strcpy(bind.sReserved, "");

if (send(client, (char *)&bind, sizeof(_Bind), 0) == SOCKET_ERROR)
{
closesocket(client);
WSACleanup();
return -4;
}

_BindResp bindResp;
recv(client, (char *)&bindResp, sizeof(_BindResp), 0);
if (bindResp.nResult != 0)
{
return -5;
}

g_client = client;
return 0;
}
是这样写吗?
其中recv返回模拟网关关闭连接,我想可能是包结构填充不对,bind.head.nSeqNum.nSrcNodeNum = 3010012345;是sp接入号吗?
调用函数时char * sSvrIp, int nSvrPort也与模拟网关的一样。
为什么模拟网关老是关闭连接呢?
...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
paladinsong 2003-12-11
  • 打赏
  • 举报
回复
qq:9998775
paladinsong 2003-12-11
  • 打赏
  • 举报
回复
recv不是接收到了bind_resp,而是根本什么都接收不到,返回对方关闭连接,那个人愿意帮我调试下看,我立即传给他
paladinsong 2003-12-11
  • 打赏
  • 举报
回复
请大家踊跃点
phalcon 2003-12-11
  • 打赏
  • 举报
回复
3010012345是SP节点编号 接入号是12345
既然能收到_BindResp 里面有个字段Result是反映认证情况的 看看这个值再说咯

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧