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

【ClientSocket】SendBuf函数发送结构体出错,上代码,该怎么解决

2012-06-15 
【ClientSocket】SendBuf函数发送结构体出错,上代码先定义一个结构体C/C++ codestruct sss{int idouble j.

【ClientSocket】SendBuf函数发送结构体出错,上代码
先定义一个结构体

C/C++ code
struct sss{    int i;    double j;    ...//其他的东西,都是一些char类型    char data[2048];};

一个ClientSocket组件,发送这个结构体
C/C++ code
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函数的返回值,出错的时候,返回值是多少?

热点排行