BCB通信数据接收求助?

yongyuan_z 2011-05-24 03:44:30
客户端每次传过的数据为1K字(16bit数据字),我在服务器端通过以下代码将数据存入pw中,请问这样写对吗?字符型为8位,是否应将缓冲区设为2048长度的字符型数组?另外,数据存入pw后,pw的长度是多大呢?请各位高手指点一下。
char *pBuf=new char[1024];
short *pw=(short *)pBuf;
int iBufSize=1024;
Socket->ReceiveBuf(pBuf,iBufSize);
...全文
61 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongyuan_z 2011-05-25
  • 打赏
  • 举报
回复
谢谢1cctv的热心回复,我再想想吧
1cctv 2011-05-25
  • 打赏
  • 举报
回复
rLen有可能是奇数哦.
1cctv 2011-05-25
  • 打赏
  • 举报
回复
字节数
yongyuan_z 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 1cctv 的回复:]
你把问题想的复杂了吧.

int rLen
while((rLen=Socket->ReceiveBuf(pBuf,17))!=0)
{
//处理pBuf中rLen个字节
//......
}
[/Quote]
请问rlen是接收到的数据(16bit)个数吗?
1cctv 2011-05-25
  • 打赏
  • 举报
回复
你把问题想的复杂了吧.

int rLen
while((rLen=Socket->ReceiveBuf(pBuf,17))!=0)
{
//处理pBuf中rLen个字节
//......
}
yongyuan_z 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 1cctv 的回复:]
对头.
但pw[0] .... pw[1023],一共占用2048个字节.
[/Quote]
请问1cctv,如果我要接收较多的数据是否应将缓冲区开的很大,如果采用循环接受的话又该如何进行呢,能给个例子吗?
1cctv 2011-05-25
  • 打赏
  • 举报
回复
对头.
但pw[0] .... pw[1023],一共占用2048个字节.
yongyuan_z 2011-05-24
  • 打赏
  • 举报
回复
请问1cctv,发送数据为1K字(1024个数据),那么这1024个数据是否等于pw[0]、pw[1]……pw[1023]呢,期待您回复
1cctv 2011-05-24
  • 打赏
  • 举报
回复
嗯,缓冲区至少设为2048长度.
pw指向了pBuf,那pBuf多长,pw就多长啊.
另外,所有涉及缓冲区长度的时候,如果没有特殊说明,都是以字节为单位的.

1,314

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧