首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

【ClientSocket】SendBuf函数发送结构体出错,下代码

2012-12-30 
【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函数的返回值,出错的时候,返回值是多少?

热点排行