【ClientSocket】SendBuf函数发送结构体出错,下代码
【ClientSocket】SendBuf函数发送结构体出错,上代码先定义一个结构体struct sss{int idouble j...//其他的
【ClientSocket】SendBuf函数发送结构体出错,上代码
先定义一个结构体
struct sss
{
int i;
double j;
...//其他的东西,都是一些char类型
char data[2048];
};
一个ClientSocket组件,发送这个结构体
char* 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函数的返回值,出错的时候,返回值是多少?