关于SOCKET和数据库的一个奇怪的问题

chenyong78 2007-04-16 12:32:54
有2个类,一个是clientSocket:CSocket还有一个是LogRecordset:CRecordset
写了一个打开数据库的函数,clientSocket::opendb()
clientSocket::OnReceive里有一段程序是这样的
if(int receiveLength = Receive(temp,1024))
{
temp[receiveLength] = 0;
}

在这段代码之后调用opendb()就会报错,之前就一点问题也没有.
我是想分析收到的数据之后再根据收到的数据对数据库进行操作,如果这样不行,还有什么别的方法?
...全文
227 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fantiyu_sr 2007-04-17
  • 打赏
  • 举报
回复
temp[receiveLength] = 0;
这句的目的是将获得的数据最后一个字符置0, 如果接收的是字符串,那么方便后续处理
这句本身没有问题

但问题是你temp[]长度是多少?
temp[receiveLength]有没有越界?
shenyi0106 2007-04-16
  • 打赏
  • 举报
回复
if(int receiveLength = Receive(temp,1024))
{
temp[receiveLength] = 0;
}
你是要定义temp数组,还是要给temp数组中的某个项赋值?
如果是赋值的话,那请检查temp[receiveLength]是不是越界了;如果是定义的话,请不要赋值
chenyong78 2007-04-16
  • 打赏
  • 举报
回复
刚才又试了一下,如果把temp[receiveLength] = 0;去掉的话,就没有问题了.这句我也不知道是干什么用的,只是很多书上都这么写......

18,355

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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