【ClientSocket】SendBuf函数发送结构体出错,上代码,该怎么解决
【ClientSocket】SendBuf函数发送结构体出错,上代码先定义一个结构体C/C++ codestruct sss{int idouble j.
【ClientSocket】SendBuf函数发送结构体出错,上代码
先定义一个结构体
C/C++ codestruct sss{ int i; double j; ...//其他的东西,都是一些char类型 char data[2048];};
一个ClientSocket组件,发送这个结构体
C/C++ codechar* cmd = "alskdfjl2k3j4l2k3j4l2asl";//struct sss mysss;mysss.i = 1;mysss.j = 2;...//其他的东西,都是一些char类型sprintf(mysss.data, "%s", cmd);int sendsize = N;//这里我会计算这个结构体的长度,不用怀疑ClientSocket->Socket->SendBuf((char*)&mysss, sendsize);
服务器代码不写了,及其简单的几行。
问题是:这个是我用BCB写的一个ActiveX,如果直接用IE浏览器调试的话,没有问题,如果注册到VC里调用,则发送不成功;
还有,发送不成功分几种情况:1、如果data长度是128,则没有问题
2、如果data长度是512,发送第一次能接受到,第二次出错
3、如果data长度是1024,第一次接收就失败,接收为空
不知道是什么啊
[解决办法]关键是接收,你如何确定接收不成功?
一般是先发一个数据长度,或者约定一个数据长度,接收端循环接收,直到达到接收的长度
[解决办法]关注一下sendbuf函数的返回值,出错的时候,返回值是多少?