各位兄弟,你们好啊!我现在在跟移动调试通过smpp协议来收发短消息,但是我不知道为什么我总是无法登录smpp服务器,难道我的调用问题?
{
m_SocketRec 已connect成功! // str_to_smsc 我的登陆信息 根据smpp协议写的
int len = send(m_SocketRec, str_to_smsc, sizeof(SMPP_BIND_MSG)str_len, 0);
len = recv( m_SocketRec,str_from_smsc,sizeof(SMPP_BIND_RESP_BODY),0);
}我现在很奇怪,我发送能成功,但是我就是无法收到从smsc发过来的消息
这是为什么?
{
m_SocketRec 已connect成功! // str_to_smsc 我的登陆信息 根据smpp协议写的
int len = send(m_SocketRec, str_to_smsc, sizeof(SMPP_BIND_MSG)str_len, 0);
len = recv( m_SocketRec,str_from_smsc,sizeof(SMPP_BIND_RESP_BODY),0);
}我现在很奇怪,我发送能成功,但是我就是无法收到从smsc发过来的消息
这是为什么?
解决方案 »
- VS2010 CDialogBar的用法
- 怎样把char Buf[4]转换成cstring
- 为什么我在OnCreate里边改变了控件大小,可一点击有返回原来大小?
- 身份证感应器,读取身份证的信息,有没有这样DLL
- 急********急*******急死了,100分求大虾救命,如何给对话框弹出菜单中的选项打上选定小勾(checked)????
- 那里有Windows核心编程的配套源码
- 非常菜鸟的问题
- 高手请进来,跪谢
- 高分求获得多边型面积的算法
- 如何读取SCSI硬盘唯一系列号,解决再开贴送200分!!!(2)
- 请问在SDI中怎样通过框架类中调用文档类的某个public函数
- 我深爱的女人,连信息也不回我的了!不就嫌弃我钱不多呀!工作不好——程序员!
{
char str_to_smsc[200],str_from_smsc[200];
SMPP_BIND_MSG *smpp_MSG;
// 系统初始化
smpp_MSG = new SMPP_BIND_MSG;
memset(smpp_MSG,0,sizeof(SMPP_BIND_MSG));
memset(str_to_smsc,0,200 );
memset(str_from_smsc,0,200 ); if(!Connect())
return false;
/**************************************************/
// 绑定smpp协议内容 smpp_MSG->Head.CommandId=1;
smpp_MSG->Head.CommandLength =sizeof(SMPP_BIND_MSG);
smpp_MSG->Head.CommandStatus=0;
smpp_MSG->Head.SequenceNo=102;
strcpy(smpp_MSG->Body.SystemId,"tongda");
strcpy(smpp_MSG->Body.Password,"tongda");
smpp_MSG->Body.SystemType[0]=0;
smpp_MSG->Body.Ton=0;
smpp_MSG->Body.Npi=1;
smpp_MSG->Body.InterfaceVersion=1;
memcpy(str_to_smsc,smpp_MSG, sizeof(SMPP_BIND_MSG)); /**************************************************/ int rval = send(m_SocketRec, str_to_smsc, sizeof(SMPP_BIND_MSG), 0);
if(rval!=sizeof(SMPP_BIND_MSG))
return false; do
{
memset(str_from_smsc,0,sizeof(str_from_smsc));
if ( (rval=recv(m_SocketRec,str_from_smsc,sizeof(SMPP_BIND_RESP_BODY),MSG_PEEK))==-1 )
return false;
}while(rval>0); if(E_SUCCESS != GetPackageResult(str_from_smsc) )
return false;
return true;
}
int CommandLength;
int CommandId;
int CommandStatus;
int SequenceNo;
}SMPP_HEAD;
typedef struct{
char SystemId[SYSTEM_ID_LEN];
char Password[PASSWORD_LEN];
char SystemType[SYSTEM_TYPE_LEN];
char InterfaceVersion;
char Ton;
char Npi;
char AddressRange[ADDRESS_RANGE_LEN];
}SMPP_BIND_BODY;typedef struct{
SMPP_HEAD Head;
SMPP_BIND_BODY Body;
}SMPP_BIND_MSG;
typedef struct{
char SystemId[SYSTEM_ID_LEN];
}SMPP_BIND_RESP_BODY;这是我的包结构
还有,发送以后一般需要Sleep一点时间的。
Sleep 也没有用
不是这个问题
就是无法接收